# QairtTensor

Tensor creation and management.

**Include:** `#include "QairtTensor/QairtTensor.h"`

- struct QairtTensor\_V1\_t

    - *#include &lt;QairtTensor.h&gt;*

Public Members

- uint64\_t size

    - 

- [Qairt\_GetInterfaceFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv422Qairt_GetInterfaceFn_t) getInterface

    - 

- [QairtTensor\_CreateFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv422QairtTensor_CreateFn_t) create

    - 

- [QairtTensor\_FreeFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_FreeFn_t) free

    - 

- [QairtTensor\_SetIdFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv421QairtTensor_SetIdFn_t) setId

    - 

- [QairtTensor\_GetIdFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv421QairtTensor_GetIdFn_t) getId

    - 

- [QairtTensor\_GetIsProducedFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv429QairtTensor_GetIsProducedFn_t) getIsProduced

    - 

- [QairtTensor\_SetNameFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv423QairtTensor_SetNameFn_t) setName

    - 

- [QairtTensor\_GetNameFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv423QairtTensor_GetNameFn_t) getName

    - 

- [QairtTensor\_SetTensorPropertiesFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv435QairtTensor_SetTensorPropertiesFn_t) setTensorProperties

    - 

- [QairtTensor\_GetTensorPropertiesFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv435QairtTensor_GetTensorPropertiesFn_t) getTensorProperties

    - 

- [QairtTensor\_SetDataFormatFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv429QairtTensor_SetDataFormatFn_t) setDataFormat

    - 

- [QairtTensor\_GetDataFormatFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv429QairtTensor_GetDataFormatFn_t) getDataFormat

    - 

- [QairtTensor\_SetDataTypeFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv427QairtTensor_SetDataTypeFn_t) setDataType

    - 

- [QairtTensor\_GetDataTypeFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv427QairtTensor_GetDataTypeFn_t) getDataType

    - 

- [QairtTensor\_GetRankFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv423QairtTensor_GetRankFn_t) getRank

    - 

- [QairtTensor\_SetDimsFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv423QairtTensor_SetDimsFn_t) setDims

    - 

- [QairtTensor\_GetDimsFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv423QairtTensor_GetDimsFn_t) getDims

    - 

- [QairtTensor\_SetTensorMemoryFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv431QairtTensor_SetTensorMemoryFn_t) setTensorMemory

    - 

- [QairtTensor\_GetTensorMemoryFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv431QairtTensor_GetTensorMemoryFn_t) getTensorMemory

    - 

- [QairtTensor\_SetIsDynamicDimensionsFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv438QairtTensor_SetIsDynamicDimensionsFn_t) setIsDynamicDimensions

    - 

- [QairtTensor\_GetIsDynamicDimensionsFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv438QairtTensor_GetIsDynamicDimensionsFn_t) getIsDynamicDimensions

    - 

- [QairtTensor\_SetSparseParamsFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv431QairtTensor_SetSparseParamsFn_t) setSparseParams

    - 

- [QairtTensor\_GetSparseParamsFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv431QairtTensor_GetSparseParamsFn_t) getSparseParams

    - 

- [QairtTensor\_SetQuantizeParamsFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv433QairtTensor_SetQuantizeParamsFn_t) setQuantizeParams

    - 

- [QairtTensor\_GetQuantizeParamsFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv433QairtTensor_GetQuantizeParamsFn_t) getQuantizeParams

    -

Functions

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_create([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t) \*tensorHandle)

    - Create a tensor handle.

- Parameters

    - **tensorHandle** – **[out]** A handle to the created tensor.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Tensor was successfully created.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: *tensorHandle* is NULL.
- QAIRT\_TENSOR\_ERROR\_MEM\_ALLOC: Memory allocation error.

Note

Use corresponding API through [QairtTensor\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__V1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_free([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t) tensorHandle)

    - Free a tensor handle.

- Parameters

    - **tensorHandle** – **[in]** A handle to a created tensor.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Tensor was successfully freed.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorHandle* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_MEM\_ALLOC: Memory deallocation error.

Note

Use corresponding API through [QairtTensor\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__V1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_setId([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t) tensorHandle, uint64\_t id)

    - Set the unique identifier of a tensor.

- Parameters

    - - **tensorHandle** – **[in]** A handle to a created tensor.
- **id** – **[in]** The unique identifier to set on the tensor.

- Returns

    - Error code:

- QAIRT\_SUCCESS: ID was successfully set.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorHandle* is not a valid handle.

Note

Use corresponding API through [QairtTensor\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__V1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_getId([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t) tensorHandle, uint64\_t \*id)

    - Get the unique identifier of a tensor.

- Parameters

    - - **tensorHandle** – **[in]** A handle to a created tensor.
- **id** – **[out]** The unique identifier of the tensor.

- Returns

    - Error code:

- QAIRT\_SUCCESS: ID was successfully retrieved.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorHandle* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: *id* is NULL.

Note

Use corresponding API through [QairtTensor\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__V1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_getIsProduced([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t) tensorHandle, uint8\_t \*isProduced)

    - Check if a tensor is produced (output) or consumed (input).

- Parameters

    - - **tensorHandle** – **[in]** A handle to a created tensor.
- **isProduced** – **[out]** Set to 1 if the tensor is produced (output), 0 if consumed (input).

- Returns

    - Error code:

- QAIRT\_SUCCESS: Status was successfully retrieved.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorHandle* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: *isProduced* is NULL.

Note

Use corresponding API through [QairtTensor\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__V1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_setName([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t) tensorHandle, const char \*name)

    - Set the name of a tensor.

- Parameters

    - - **tensorHandle** – **[in]** A handle to a created tensor.
- **name** – **[in]** The name to assign to the tensor. Must be a valid null-terminated string.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Name was successfully set.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorHandle* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: *name* is NULL.

Note

Use corresponding API through [QairtTensor\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__V1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_getName([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t) tensorHandle, const char \*\*name)

    - Get the name of a tensor.

- Parameters

    - - **tensorHandle** – **[in]** A handle to a created tensor.
- **name** – **[out]** Pointer to the tensor name string. The string is owned by the tensor and should not be freed by the caller.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Name was successfully retrieved.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorHandle* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: *name* is NULL.

Note

Use corresponding API through [QairtTensor\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__V1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_setTensorProperties([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t) tensorHandle, [QairtTensor\_PropertiesHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv430QairtTensor_PropertiesHandle_t) propertiesHandle)

    - Set tensor properties on a tensor.

- Parameters

    - - **tensorHandle** – **[in]** A handle to a created tensor.
- **propertiesHandle** – **[in]** A handle to tensor properties.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Properties were successfully set.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorHandle* or *propertiesHandle* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: One or more property values are invalid.

Note

Use corresponding API through [QairtTensor\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__V1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_getTensorProperties([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t) tensorHandle, [QairtTensor\_PropertiesHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv430QairtTensor_PropertiesHandle_t) \*propertiesHandle)

    - Get tensor properties from a tensor.

- Parameters

    - - **tensorHandle** – **[in]** A handle to a created tensor.
- **propertiesHandle** – **[out]** A referenced tensor properties handle. Reference handles should not be freed. Referenced handles are invalidated if modification operations are performed from the same component API.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Properties were successfully retrieved.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorHandle* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: *propertiesHandle* is NULL.

Note

Use corresponding API through [QairtTensor\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__V1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_setDataFormat([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t) tensorHandle, uint32\_t dataFormat)

    - Set the data format of a tensor.

- Parameters

    - - **tensorHandle** – **[in]** A handle to a created tensor.
- **dataFormat** – **[in]** The data format value to set.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Data format was successfully set.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorHandle* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: *dataFormat* is invalid.

Note

Use corresponding API through [QairtTensor\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__V1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_getDataFormat([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t) tensorHandle, uint32\_t \*dataFormat)

    - Get the data format of a tensor.

- Parameters

    - - **tensorHandle** – **[in]** A handle to a created tensor.
- **dataFormat** – **[out]** The data format value.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Data format was successfully retrieved.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorHandle* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: *dataFormat* is NULL.

Note

Use corresponding API through [QairtTensor\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__V1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_setDataType([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t) tensorHandle, [Qairt\_DataType\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv416Qairt_DataType_t) dataType)

    - Set the data type of a tensor.

- Parameters

    - - **tensorHandle** – **[in]** A handle to a created tensor.
- **dataType** – **[in]** The data type to set.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Data type was successfully set.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorHandle* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: *dataType* is invalid.

Note

Use corresponding API through [QairtTensor\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__V1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_getDataType([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t) tensorHandle, [Qairt\_DataType\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv416Qairt_DataType_t) \*dataType)

    - Get the data type of a tensor.

- Parameters

    - - **tensorHandle** – **[in]** A handle to a created tensor.
- **dataType** – **[out]** The data type value.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Data type was successfully retrieved.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorHandle* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: *dataType* is NULL.

Note

Use corresponding API through [QairtTensor\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__V1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_getRank([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t) tensorHandle, uint32\_t \*rank)

    - Get the rank (number of dimensions) of a tensor.

- Parameters

    - - **tensorHandle** – **[in]** A handle to a created tensor.
- **rank** – **[out]** The rank value.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Rank was successfully retrieved.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorHandle* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: *rank* is NULL.

Note

Use corresponding API through [QairtTensor\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__V1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_setDims([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t) tensorHandle, uint32\_t \*dims, uint32\_t size)

    - Set the dimensions of a tensor.

- Parameters

    - - **tensorHandle** – **[in]** A handle to a created tensor.
- **dims** – **[in]** An array of dimension values.
- **size** – **[in]** The number of dimensions (rank).

- Returns

    - Error code:

- QAIRT\_SUCCESS: Dimensions were successfully set.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorHandle* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: *dims* is NULL or *size* is invalid.
- QAIRT\_TENSOR\_ERROR\_MEM\_ALLOC: Memory allocation error while setting dimensions.

Note

Use corresponding API through [QairtTensor\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__V1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_getDims([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t) tensorHandle, uint32\_t \*dims)

    - Get the dimensions of a tensor.

- Parameters

    - - **tensorHandle** – **[in]** A handle to a created tensor.
- **dims** – **[out]** An array to store the dimension values. Must be pre-allocated with size equal to the tensor’s rank.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Dimensions were successfully retrieved.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorHandle* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: *dims* is NULL.

Note

Use corresponding API through [QairtTensor\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__V1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_setTensorMemory([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t) tensorHandle, [QairtTensor\_MemoryHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv426QairtTensor_MemoryHandle_t) memoryHandle)

    - Set tensor memory configuration.

- Parameters

    - - **tensorHandle** – **[in]** A handle to a created tensor.
- **memoryHandle** – **[in]** A handle to tensor memory configuration.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Memory configuration was successfully set.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorHandle* or *memoryHandle* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: Memory configuration is invalid.

Note

Use corresponding API through [QairtTensor\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__V1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_getTensorMemory([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t) tensorHandle, [QairtTensor\_MemoryHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv426QairtTensor_MemoryHandle_t) \*memoryHandle)

    - Get tensor memory configuration.

- Parameters

    - - **tensorHandle** – **[in]** A handle to a created tensor.
- **memoryHandle** – **[out]** A referenced tensor memory handle. Reference handles should not be freed. Referenced handles are invalidated if modification operations are performed from the same component API.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Memory configuration was successfully retrieved.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorHandle* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: *memoryHandle* is NULL.

Note

Use corresponding API through [QairtTensor\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__V1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_setIsDynamicDimensions([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t) tensorHandle, const uint8\_t \*isDynamic, uint32\_t size)

    - Set which dimensions are dynamic (can change at runtime).

- Parameters

    - - **tensorHandle** – **[in]** A handle to a created tensor.
- **isDynamic** – **[in]** An array of boolean values (0 or 1) indicating which dimensions are dynamic. Array length must equal the tensor’s rank.
- **size** – **[in]** The number of elements in the isDynamic array (must equal rank).

- Returns

    - Error code:

- QAIRT\_SUCCESS: Dynamic dimensions were successfully set.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorHandle* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: *isDynamic* is NULL or *size* doesn’t match rank.

Note

Use corresponding API through [QairtTensor\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__V1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_getIsDynamicDimensions([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t) tensorHandle, uint8\_t \*isDynamic)

    - Get which dimensions are dynamic.

- Parameters

    - - **tensorHandle** – **[in]** A handle to a created tensor.
- **isDynamic** – **[out]** An array to store boolean values indicating which dimensions are dynamic. Must be pre-allocated with size equal to the tensor’s rank.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Dynamic dimensions were successfully retrieved.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorHandle* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: *isDynamic* is NULL.

Note

Use corresponding API through [QairtTensor\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__V1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_setSparseParams([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t) tensorHandle, [QairtSparseParams\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv426QairtSparseParams_Handle_t) sparseParamsHandle)

    - Set sparse parameters for a tensor.

- Parameters

    - - **tensorHandle** – **[in]** A handle to a created tensor.
- **sparseParamsHandle** – **[in]** A handle to sparse parameters configuration.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Sparse parameters were successfully set.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorHandle* or *sparseParamsHandle* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: Sparse parameters are invalid.
- QAIRT\_TENSOR\_ERROR\_UNSUPPORTED\_FEATURE: Sparse tensors are not supported.

Note

Use corresponding API through [QairtTensor\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__V1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_getSparseParams([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t) tensorHandle, [QairtSparseParams\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv426QairtSparseParams_Handle_t) \*sparseParamsHandle)

    - Get sparse parameters from a tensor.

- Parameters

    - - **tensorHandle** – **[in]** A handle to a created tensor.
- **sparseParamsHandle** – **[out]** A referenced sparse parameters handle. Reference handles should not be freed. Referenced handles are invalidated if modification operations are performed from the same component API.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Sparse parameters were successfully retrieved.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorHandle* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: *sparseParamsHandle* is NULL.

Note

Use corresponding API through [QairtTensor\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__V1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_setQuantizeParams([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t) tensorHandle, [QairtQuantizeParams\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtQuantizeParams.html#_CPPv428QairtQuantizeParams_Handle_t) quantParamsHandle)

    - Set quantization parameters for a tensor.

- Parameters

    - - **tensorHandle** – **[in]** A handle to a created tensor.
- **quantParamsHandle** – **[in]** A handle to quantization parameters configuration.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Quantization parameters were successfully set.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorHandle* or *quantParamsHandle* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: Quantization parameters are invalid.
- QAIRT\_TENSOR\_ERROR\_UNSUPPORTED\_FEATURE: Quantized tensors are not supported.

Note

Use corresponding API through [QairtTensor\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__V1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_getQuantizeParams([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t) tensorHandle, [QairtQuantizeParams\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtQuantizeParams.html#_CPPv428QairtQuantizeParams_Handle_t) \*quantParamsHandle)

    - Get quantization parameters from a tensor.

- Parameters

    - - **tensorHandle** – **[in]** A handle to a created tensor.
- **quantParamsHandle** – **[out]** A referenced quantization parameters handle. Reference handles should not be freed. Referenced handles are invalidated if modification operations are performed from the same component API.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Quantization parameters were successfully retrieved.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorHandle* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: *quantParamsHandle* is NULL.

Note

Use corresponding API through [QairtTensor\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__V1__t).

Typedefs

- typedef struct \_QairtTensor\_Handle\_t \*QairtTensor\_Handle\_t

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_CreateFn\_t)([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t)\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_FreeFn\_t)([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t))

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_SetIdFn\_t)([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t), uint64\_t)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_GetIdFn\_t)([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t), uint64\_t\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_GetIsProducedFn\_t)([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t), uint8\_t\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_SetNameFn\_t)([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t), const char\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_GetNameFn\_t)([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t), const char\*\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_SetTensorPropertiesFn\_t)([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t), [QairtTensor\_PropertiesHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv430QairtTensor_PropertiesHandle_t))

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_GetTensorPropertiesFn\_t)([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t), [QairtTensor\_PropertiesHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv430QairtTensor_PropertiesHandle_t)\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_SetDataFormatFn\_t)([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t), uint32\_t)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_GetDataFormatFn\_t)([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t), uint32\_t\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_SetDataTypeFn\_t)([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t), [Qairt\_DataType\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv416Qairt_DataType_t))

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_GetDataTypeFn\_t)([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t), [Qairt\_DataType\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv416Qairt_DataType_t)\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_GetRankFn\_t)([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t), uint32\_t\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_SetDimsFn\_t)([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t), uint32\_t\*, uint32\_t)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_GetDimsFn\_t)([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t), uint32\_t\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_SetTensorMemoryFn\_t)([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t), [QairtTensor\_MemoryHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv426QairtTensor_MemoryHandle_t))

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_GetTensorMemoryFn\_t)([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t), [QairtTensor\_MemoryHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv426QairtTensor_MemoryHandle_t)\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_SetIsDynamicDimensionsFn\_t)([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t), const uint8\_t\*, uint32\_t)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_GetIsDynamicDimensionsFn\_t)([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t), uint8\_t\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_SetSparseParamsFn\_t)([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t), [QairtSparseParams\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv426QairtSparseParams_Handle_t))

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_GetSparseParamsFn\_t)([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t), [QairtSparseParams\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv426QairtSparseParams_Handle_t)\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_SetQuantizeParamsFn\_t)([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t), [QairtQuantizeParams\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtQuantizeParams.html#_CPPv428QairtQuantizeParams_Handle_t))

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_GetQuantizeParamsFn\_t)([QairtTensor\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv420QairtTensor_Handle_t), [QairtQuantizeParams\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtQuantizeParams.html#_CPPv428QairtQuantizeParams_Handle_t)\*)

    -

Defines

- QAIRT\_TENSOR\_V1\_ID QAIRT\_MIN\_ID\_TENSOR

    - 

- QAIRT\_TENSOR\_MEMORY\_V1\_ID QAIRT\_MIN\_ID\_TENSOR + 1

    - 

- QAIRT\_TENSOR\_PROPERTIES\_V1\_ID QAIRT\_MIN\_ID\_TENSOR + 2

    - 

- QAIRT\_TENSOR\_CLIENT\_BUFFER\_V1\_ID QAIRT\_MIN\_ID\_TENSOR + 3

    -

* * *

Common tensor types and error codes.

**Include:** `#include "QairtTensor/QairtTensorCommon.h"`

Enums

- enum QairtTensor\_Error\_t

    - QAIRT Tensor API result / error codes.

*Values:*

- enumerator QAIRT\_TENSOR\_MIN\_ERROR = QAIRT\_MIN\_ERROR\_TENSOR

    - 

- enumerator QAIRT\_TENSOR\_NO\_ERROR = QAIRT\_SUCCESS

    - Success.

- enumerator QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE = 7001

    - Invalid context/graph handle in creating tensor.

- enumerator QAIRT\_TENSOR\_ERROR\_DOES\_NOT\_EXIST = 7002

    - Tensor with specified credentials not registered with a context/graph.

- enumerator QAIRT\_TENSOR\_ERROR\_INVALID\_TENSOR\_PARAM = 7004

    - Invalid tensor param.

- enumerator QAIRT\_TENSOR\_ERROR\_UNSUPPORTED\_TENSOR\_PARAM = 7005

    - This tensor param is currently unsupported.

- enumerator QAIRT\_TENSOR\_ERROR\_INCOMPATIBLE\_TENSOR\_UPDATE = 7007

    - Tensor provided for update is invalid.

- enumerator QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT = 7008

    - Invalid context/graph handle in creating tensor.

- enumerator QAIRT\_TENSOR\_ERROR\_MEM\_ALLOC = 7009

    - Memory allocation error during tensor memory operations.

- enumerator QAIRT\_TENSOR\_ERROR\_MEMORY\_TYPE\_MISMATCH = 7010

    - Tensor memory type mismatch for requested operation.

- enumerator QAIRT\_TENSOR\_ERROR\_UNSUPPORTED\_FEATURE = [QAIRT\_COMMON\_ERROR\_NOT\_SUPPORTED](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv4N19QairtCommon_Error_t32QAIRT_COMMON_ERROR_NOT_SUPPORTEDE)

    - There is optional API component that is not supported yet.

See QairtProperty.

- enumerator QAIRT\_TENSOR\_MAX\_ERROR = QAIRT\_MAX\_ERROR\_TENSOR

    - 

- enumerator QAIRT\_TENSOR\_ERROR\_UNDEFINED = 0x7FFFFFFF

    -

Typedefs

- typedef void \*QairtSparseParams\_Handle\_t

    -

* * *

Tensor memory allocation and management.

**Include:** `#include "QairtTensor/QairtTensorMemory.h"`

- struct QairtTensor\_ClientBufferV1\_t

    - *#include &lt;QairtTensorMemory.h&gt;*

Public Members

- uint64\_t size

    - 

- [Qairt\_GetInterfaceFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv422Qairt_GetInterfaceFn_t) getInterface

    - 

- [QairtTensor\_ClientBuffer\_CreateFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv435QairtTensor_ClientBuffer_CreateFn_t) create

    - 

- [QairtTensor\_ClientBuffer\_FreeFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv433QairtTensor_ClientBuffer_FreeFn_t) free

    - 

- [QairtTensor\_ClientBuffer\_SetDataFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv436QairtTensor_ClientBuffer_SetDataFn_t) setData

    - 

- [QairtTensor\_ClientBuffer\_GetDataFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv436QairtTensor_ClientBuffer_GetDataFn_t) getData

    - 

- [QairtTensor\_ClientBuffer\_SetDataSizeFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv440QairtTensor_ClientBuffer_SetDataSizeFn_t) setDataSize

    - 

- [QairtTensor\_ClientBuffer\_GetDataSizeFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv440QairtTensor_ClientBuffer_GetDataSizeFn_t) getDataSize

    -

- struct QairtTensor\_MemoryV1\_t

    - *#include &lt;QairtTensorMemory.h&gt;*

Public Members

- uint64\_t size

    - 

- [Qairt\_GetInterfaceFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv422Qairt_GetInterfaceFn_t) getInterface

    - 

- [QairtTensor\_Memory\_CreateFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv429QairtTensor_Memory_CreateFn_t) create

    - 

- [QairtTensor\_Memory\_FreeFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv427QairtTensor_Memory_FreeFn_t) free

    - 

- [QairtTensor\_Memory\_GetMemoryTypeFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv436QairtTensor_Memory_GetMemoryTypeFn_t) getMemoryType

    - 

- [QairtTensor\_Memory\_SetMemHandleFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv435QairtTensor_Memory_SetMemHandleFn_t) setMemHandle

    - 

- [QairtTensor\_Memory\_GetMemHandleFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv435QairtTensor_Memory_GetMemHandleFn_t) getMemHandle

    - 

- [QairtTensor\_Memory\_SetClientBufferFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv438QairtTensor_Memory_SetClientBufferFn_t) setClientBuffer

    - 

- [QairtTensor\_Memory\_GetClientBufferFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv438QairtTensor_Memory_GetClientBufferFn_t) getClientBuffer

    - 

- [QairtTensor\_Memory\_SetRawRetrieveCallbacksFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv446QairtTensor_Memory_SetRawRetrieveCallbacksFn_t) setRawRetrieveCallbacks

    - 

- [QairtTensor\_Memory\_GetRawRetrieveCallbacksFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv446QairtTensor_Memory_GetRawRetrieveCallbacksFn_t) getRawRetrieveCallbacks

    -

Functions

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_ClientBuffer\_create([QairtTensor\_ClientBufferHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv432QairtTensor_ClientBufferHandle_t) \*clientBufferHandle)

    - Create a client buffer handle.

- Parameters

    - **clientBufferHandle** – **[out]** A handle to the created client buffer.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Client buffer was successfully created.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: *clientBufferHandle* is NULL.
- QAIRT\_TENSOR\_ERROR\_MEM\_ALLOC: Memory allocation error while creating client buffer.

Note

Use corresponding API through [QairtTensor\_ClientBufferV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__ClientBufferV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_ClientBuffer\_free([QairtTensor\_ClientBufferHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv432QairtTensor_ClientBufferHandle_t) clientBufferHandle)

    - Free a client buffer handle and associated resources.

- Parameters

    - **clientBufferHandle** – **[in]** A handle to a created client buffer.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Client buffer was successfully freed.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *clientBufferHandle* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_MEM\_ALLOC: Memory deallocation error.

Note

Use corresponding API through [QairtTensor\_ClientBufferV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__ClientBufferV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_ClientBuffer\_setData([QairtTensor\_ClientBufferHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv432QairtTensor_ClientBufferHandle_t) clientBufferHandle, void \*data)

    - Set data pointer for a client buffer.

- Parameters

    - - **clientBufferHandle** – **[in]** A handle to a created client buffer.
- **data** – **[in]** Pointer to the data to be associated with the client buffer. May be NULL for zero-size buffers or to reset/detach the buffer.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Data was successfully set.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *clientBufferHandle* is not a valid handle.

Note

Use corresponding API through [QairtTensor\_ClientBufferV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__ClientBufferV1__t).

Note

NULL data pointers are valid for empty buffers (size 0) or when resetting a buffer. This allows proper cleanup and initialization of tensor buffers.

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_ClientBuffer\_getData([QairtTensor\_ClientBufferHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv432QairtTensor_ClientBufferHandle_t) clientBufferHandle, void \*\*data)

    - Get data pointer from a client buffer.

- Parameters

    - - **clientBufferHandle** – **[in]** A handle to a created client buffer.
- **data** – **[out]** Pointer to retrieve the data associated with the client buffer. May be NULL if the buffer has no data or has been reset.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Data was successfully retrieved.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *clientBufferHandle* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: *data* is NULL.

Note

Use corresponding API through [QairtTensor\_ClientBufferV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__ClientBufferV1__t).

Note

The retrieved data pointer may be NULL for empty or reset buffers.

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_ClientBuffer\_setDataSize([QairtTensor\_ClientBufferHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv432QairtTensor_ClientBufferHandle_t) clientBufferHandle, uint32\_t dataSize)

    - Set data size for a client buffer.

- Parameters

    - - **clientBufferHandle** – **[in]** A handle to a created client buffer.
- **dataSize** – **[in]** Data size of the client buffer in bytes. May be 0 for empty buffers.

- Returns

    - Error code:

- QAIRT\_SUCCESS: dataSize was successfully set.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *clientBufferHandle* is not a valid handle.

Note

Use corresponding API through [QairtTensor\_ClientBufferV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__ClientBufferV1__t).

Note

A size of 0 is valid and indicates an empty buffer.

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_ClientBuffer\_getDataSize([QairtTensor\_ClientBufferHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv432QairtTensor_ClientBufferHandle_t) clientBufferHandle, uint32\_t \*dataSize)

    - Get data size from a client buffer.

- Parameters

    - - **clientBufferHandle** – **[in]** A handle to a created client buffer.
- **dataSize** – **[out]** Pointer to retrieve the data size of the client buffer in bytes. May be 0 for empty buffers.

- Returns

    - Error code:

- QAIRT\_SUCCESS: dataSize was successfully retrieved.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *clientBufferHandle* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: *dataSize* is NULL.

Note

Use corresponding API through [QairtTensor\_ClientBufferV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__ClientBufferV1__t).

Note

The retrieved size may be 0 for empty buffers.

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_Memory\_create([QairtTensor\_MemoryHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv426QairtTensor_MemoryHandle_t) \*tensorMemoryHandle)

    - Create a tensor memory handle.

- Parameters

    - **tensorMemoryHandle** – **[out]** A handle to the created tensor memory.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Tensor memory was successfully created.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: *tensorMemoryHandle* is NULL.
- QAIRT\_TENSOR\_ERROR\_MEM\_ALLOC: Memory allocation error while creating tensor memory.

Note

Use corresponding API through [QairtTensor\_MemoryV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__MemoryV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_Memory\_free([QairtTensor\_MemoryHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv426QairtTensor_MemoryHandle_t) tensorMemoryHandle)

    - Free a tensor memory handle and associated resources.

- Parameters

    - **tensorMemoryHandle** – **[in]** A handle to a created tensor memory.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Tensor memory was successfully freed.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorMemoryHandle* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_MEM\_ALLOC: Memory deallocation error.

Note

Use corresponding API through [QairtTensor\_MemoryV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__MemoryV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_Memory\_getMemoryType([QairtTensor\_MemoryHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv426QairtTensor_MemoryHandle_t) tensorMemoryHandle, [QairtTensor\_MemoryType\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv424QairtTensor_MemoryType_t) \*type)

    - Get the memory type of a tensor memory handle.

- Parameters

    - - **tensorMemoryHandle** – **[in]** A handle to a created tensor memory.
- **type** – **[out]** Pointer to retrieve the memory type.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Memory type was successfully retrieved.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorMemoryHandle* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: *type* is invalid.

Note

Use corresponding API through [QairtTensor\_MemoryV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__MemoryV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_Memory\_setMemHandle([QairtTensor\_MemoryHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv426QairtTensor_MemoryHandle_t) tensorMemory, [QairtMem\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv417QairtMem_Handle_t) memHandle)

    - Set a memory handle for a tensor memory handle.

Creates a memory handle memory type within the tensor memory if not already present, then associates the specified memory handle with the tensor memory.

- Parameters

    - - **tensorMemory** – **[in]** A handle to a created tensor memory.
- **memHandle** – **[in]** A memory handle to associate with the tensor memory.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Memory handle was successfully set.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorMemory* or *memHandle* is not a valid handle.

Note

Use corresponding API through [QairtTensor\_MemoryV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__MemoryV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_Memory\_getMemHandle([QairtTensor\_MemoryHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv426QairtTensor_MemoryHandle_t) tensorMemory, [QairtMem\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv417QairtMem_Handle_t) \*memHandle)

    - Get memory handle from a tensor memory handle.

- Parameters

    - - **tensorMemory** – **[in]** A handle to a created tensor memory.
- **memHandle** – **[out]** Pointer to retrieve the memory handle.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Memory handle was successfully retrieved.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorMemory* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: *memHandle* is NULL.
- QAIRT\_TENSOR\_ERROR\_MEMORY\_TYPE\_MISMATCH: Tensor memory type is not QAIRT\_TENSORMEMTYPE\_MEMHANDLE.

Note

Use corresponding API through [QairtTensor\_MemoryV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__MemoryV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_Memory\_setClientBuffer([QairtTensor\_MemoryHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv426QairtTensor_MemoryHandle_t) tensorMemory, [QairtTensor\_ClientBufferHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv432QairtTensor_ClientBufferHandle_t) clientBuffer)

    - Set client buffer for a tensor memory handle.

Creates a buffer memory type within the tensor memory if not already present, then associates the specified client buffer with the tensor memory.

- Parameters

    - - **tensorMemory** – **[in]** A handle to a created tensor memory.
- **clientBuffer** – **[in]** A client buffer handle to associate with the tensor memory.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Client buffer was successfully set.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorMemory* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: *clientBuffer* is NULL.

Note

Use corresponding API through [QairtTensor\_MemoryV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__MemoryV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_Memory\_getClientBuffer([QairtTensor\_MemoryHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv426QairtTensor_MemoryHandle_t) tensorMemory, [QairtTensor\_ClientBufferHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv432QairtTensor_ClientBufferHandle_t) \*clientBuffer)

    - Get client buffer from a tensor memory handle.

- Parameters

    - - **tensorMemory** – **[in]** A handle to a created tensor memory.
- **clientBuffer** – **[out]** Pointer to retrieve the client buffer handle.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Client buffer was successfully retrieved.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorMemory* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: *clientBuffer* is NULL.
- QAIRT\_TENSOR\_ERROR\_MEMORY\_TYPE\_MISMATCH: Tensor memory type is not QAIRT\_TENSORMEMTYPE\_RAW.

Note

Use corresponding API through [QairtTensor\_MemoryV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__MemoryV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_Memory\_setRawRetrieveCallbacks([QairtTensor\_MemoryHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv426QairtTensor_MemoryHandle_t) tensorMemory, [Qairt\_GetTensorRawDataFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv426Qairt_GetTensorRawDataFn_t) getCallback, [Qairt\_FreeTensorRawDataFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv427Qairt_FreeTensorRawDataFn_t) freeCallback, void \*cookie)

    - Set raw retrieve callbacks for a tensor memory handle.

Creates a raw retrieve memory type within the tensor memory if not already present, then sets the specified callback functions and cookie.

- Parameters

    - - **tensorMemory** – **[in]** A handle to a created tensor memory.
- **getCallback** – **[in]** Callback function to get tensor raw data.
- **freeCallback** – **[in]** Callback function to free tensor raw data.
- **cookie** – **[in]** User-supplied context pointer to pass to callbacks (may be NULL).

- Returns

    - Error code:

- QAIRT\_SUCCESS: Raw retrieve callbacks were successfully set.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorMemory* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: *getCallback* or *freeCallback* is NULL.

Note

Use corresponding API through [QairtTensor\_MemoryV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__MemoryV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_Memory\_getRawRetrieveCallbacks([QairtTensor\_MemoryHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv426QairtTensor_MemoryHandle_t) tensorMemory, [Qairt\_GetTensorRawDataFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv426Qairt_GetTensorRawDataFn_t) \*getCallback, [Qairt\_FreeTensorRawDataFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv427Qairt_FreeTensorRawDataFn_t) \*freeCallback, void \*\*cookie)

    - Get callbacks and associated cookie from a tensor memory handle’s raw retrieve.

- Parameters

    - - **tensorMemory** – **[in]** A handle to a created tensor memory.
- **getCallback** – **[out]** Pointer to retrieve the get tensor raw data callback.
- **freeCallback** – **[out]** Pointer to retrieve the free tensor raw data callback.
- **cookie** – **[out]** Pointer to retrieve the user-supplied context pointer passed to callbacks. (The pointer value will be set to NULL if no cookie was set.)

- Returns

    - Error code:

- QAIRT\_SUCCESS: Callbacks were successfully retrieved.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorMemory* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: *getCallback*, *freeCallback*, or *cookie* is NULL.
- QAIRT\_TENSOR\_ERROR\_MEMORY\_TYPE\_MISMATCH: Tensor memory type is not QAIRT\_TENSORMEMTYPE\_RETRIEVE\_RAW.

Note

Use corresponding API through [QairtTensor\_MemoryV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__MemoryV1__t).

Enums

- enum QairtTensor\_MemoryType\_t

    - An enum specifying memory types of tensor data.

*Values:*

- enumerator QAIRT\_TENSORMEMTYPE\_RAW = 0

    - Raw memory pointer.

- enumerator QAIRT\_TENSORMEMTYPE\_MEMHANDLE = 1

    - Memory object, provide capability for memory sharing in between QAIRT accelerator backends.

- enumerator QAIRT\_TENSORMEMTYPE\_RETRIEVE\_RAW = 2

    - Callback to retrieve a raw memory pointer.

- enumerator QAIRT\_TENSORMEMTYPE\_UNDEFINED = 0x7FFFFFFF

    -

Typedefs

- typedef struct \_QairtTensor\_MemoryHandle\_t \*QairtTensor\_MemoryHandle\_t

    - 

- typedef struct \_QairtTensor\_ClientBufferHandle\_t \*QairtTensor\_ClientBufferHandle\_t

    - 

- typedef struct \_QairtContext\_Handle\_t \*QairtContext\_Handle\_t

    - 

- typedef struct \_QairtGraph\_Handle\_t \*QairtGraph\_Handle\_t

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*Qairt\_GetTensorRawDataFn\_t)([QairtContext\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtContext.html#_CPPv421QairtContext_Handle_t) context, [QairtGraph\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv419QairtGraph_Handle_t) graph, uint64\_t id, [QairtTensor\_ClientBufferHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv432QairtTensor_ClientBufferHandle_t) \*clientBuf, void \*cookie)

    - A client-defined function used to obtain tensor data when the tensor memory type is QAIRT\_TENSORMEMTYPE\_RETRIEVE\_RAW.

Qairt\_GetTensorRawDataFn\_t may be called multiple times for the same tensor. Each call to Qairt\_GetTensorRawDataFn\_t must be accompanied by a call to Qairt\_FreeTensorRawDataFn\_t to free any allocated data for that tensor.

- Param context

    - **[in]** The context to which the tensor is associated

- Param graph

    - **[in]** The graph to which the context is associated. For context tensors this field should be null.

- Param id

    - **[in]** The tensor ID.

- Param clientBuf

    - **[out]** A handle to a client buffer that should be populated with the tensor’s raw data pointer and size.

- Param cookie

    - **[in]** User-supplied context pointer passed to callbacks (may be NULL). This is the same cookie value provided via [QairtTensor\_Memory\_setRawRetrieveCallbacks()](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#QairtTensorMemory_8h_1a98d010dfd7e8e2683d204d812061afe3).

- Return

    - Error code:

- QAIRT\_SUCCESS: Client Buffer data successfully provided.
- QAIRT\_TENSOR\_ERROR\_DOES\_NOT\_EXIST: Tensor with id does not exist or was not created as QAIRT\_TENSORMEMTYPE\_RETRIEVE\_RAW.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: clientBuf is NULL
- QAIRT\_TENSOR\_ERROR\_MEM\_ALLOC: Requested tensor data cannot be allocated.

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*Qairt\_FreeTensorRawDataFn\_t)([QairtContext\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtContext.html#_CPPv421QairtContext_Handle_t) context, [QairtGraph\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv419QairtGraph_Handle_t) graph, uint64\_t id, void \*cookie)

    - A client-defined function used to free tensor data previously obtained by Qairt\_GetTensorRawDataFn\_t.

After the call to Qairt\_FreeTensorRawDataFn\_t the data provided in the client buffer should be considered invalid. If Qairt\_GetTensorRawDataFn\_t has been called multiple times for the same tensor then Qairt\_FreeTensorRawDataFn\_t must be called an equivalent number of times to free all allocated data for this tensor.

- Param context

    - **[in]** The context to which the tensor is associated

- Param graph

    - **[in]** The graph to which the context is associated. For context tensors this field should be null.

- Param id

    - **[in]** The tensor ID.

- Param cookie

    - **[in]** User-supplied context pointer passed to callbacks (may be NULL). This is the same cookie value provided via [QairtTensor\_Memory\_setRawRetrieveCallbacks()](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#QairtTensorMemory_8h_1a98d010dfd7e8e2683d204d812061afe3).

- Return

    - Error code:

- QAIRT\_SUCCESS: Client Buffer data successfully freed.
- QAIRT\_TENSOR\_ERROR\_DOES\_NOT\_EXIST: Tensor with id does not exist, was not created as QAIRT\_TENSORMEMTYPE\_RETRIEVE\_RAW, or has already been freed.

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_ClientBuffer\_CreateFn\_t)([QairtTensor\_ClientBufferHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv432QairtTensor_ClientBufferHandle_t)\*)

    - Client Buffer.

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_ClientBuffer\_FreeFn\_t)([QairtTensor\_ClientBufferHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv432QairtTensor_ClientBufferHandle_t))

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_ClientBuffer\_SetDataFn\_t)([QairtTensor\_ClientBufferHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv432QairtTensor_ClientBufferHandle_t), void\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_ClientBuffer\_GetDataFn\_t)([QairtTensor\_ClientBufferHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv432QairtTensor_ClientBufferHandle_t), void\*\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_ClientBuffer\_SetDataSizeFn\_t)([QairtTensor\_ClientBufferHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv432QairtTensor_ClientBufferHandle_t), uint32\_t)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_ClientBuffer\_GetDataSizeFn\_t)([QairtTensor\_ClientBufferHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv432QairtTensor_ClientBufferHandle_t), uint32\_t\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_Memory\_CreateFn\_t)([QairtTensor\_MemoryHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv426QairtTensor_MemoryHandle_t)\*)

    - Tensor Memory.

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_Memory\_FreeFn\_t)([QairtTensor\_MemoryHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv426QairtTensor_MemoryHandle_t))

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_Memory\_GetMemoryTypeFn\_t)([QairtTensor\_MemoryHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv426QairtTensor_MemoryHandle_t), [QairtTensor\_MemoryType\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv424QairtTensor_MemoryType_t)\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_Memory\_SetMemHandleFn\_t)([QairtTensor\_MemoryHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv426QairtTensor_MemoryHandle_t), [QairtMem\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv417QairtMem_Handle_t))

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_Memory\_GetMemHandleFn\_t)([QairtTensor\_MemoryHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv426QairtTensor_MemoryHandle_t), [QairtMem\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv417QairtMem_Handle_t)\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_Memory\_SetClientBufferFn\_t)([QairtTensor\_MemoryHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv426QairtTensor_MemoryHandle_t), [QairtTensor\_ClientBufferHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv432QairtTensor_ClientBufferHandle_t))

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_Memory\_GetClientBufferFn\_t)([QairtTensor\_MemoryHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv426QairtTensor_MemoryHandle_t), [QairtTensor\_ClientBufferHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv432QairtTensor_ClientBufferHandle_t)\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_Memory\_SetRawRetrieveCallbacksFn\_t)([QairtTensor\_MemoryHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv426QairtTensor_MemoryHandle_t), [Qairt\_GetTensorRawDataFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv426Qairt_GetTensorRawDataFn_t), [Qairt\_FreeTensorRawDataFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv427Qairt_FreeTensorRawDataFn_t), void \*cookie)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_Memory\_GetRawRetrieveCallbacksFn\_t)([QairtTensor\_MemoryHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv426QairtTensor_MemoryHandle_t), [Qairt\_GetTensorRawDataFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv426Qairt_GetTensorRawDataFn_t)\*, [Qairt\_FreeTensorRawDataFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv427Qairt_FreeTensorRawDataFn_t)\*, void \*\*cookie)

    -

* * *

Tensor property accessors.

**Include:** `#include "QairtTensor/QairtTensorProperties.h"`

- struct QairtTensor\_PropertiesV1\_t

    - *#include &lt;QairtTensorProperties.h&gt;*

Public Members

- uint64\_t size

    - 

- [Qairt\_GetInterfaceFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv422Qairt_GetInterfaceFn_t) getInterface

    - 

- [QairtTensor\_Properties\_CreateFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv433QairtTensor_Properties_CreateFn_t) create

    - 

- [QairtTensor\_Properties\_FreeFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv431QairtTensor_Properties_FreeFn_t) free

    - 

- [QairtTensor\_Properties\_SetIsInputFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv437QairtTensor_Properties_SetIsInputFn_t) setIsInput

    - 

- [QairtTensor\_Properties\_GetIsInputFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv437QairtTensor_Properties_GetIsInputFn_t) getIsInput

    - 

- [QairtTensor\_Properties\_SetIsOutputFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv438QairtTensor_Properties_SetIsOutputFn_t) setIsOutput

    - 

- [QairtTensor\_Properties\_GetIsOutputFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv438QairtTensor_Properties_GetIsOutputFn_t) getIsOutput

    - 

- [QairtTensor\_Properties\_SetIsNativeFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv438QairtTensor_Properties_SetIsNativeFn_t) setIsNative

    - 

- [QairtTensor\_Properties\_GetIsNativeFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv438QairtTensor_Properties_GetIsNativeFn_t) getIsNative

    - 

- [QairtTensor\_Properties\_SetIsNullFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv436QairtTensor_Properties_SetIsNullFn_t) setIsNull

    - 

- [QairtTensor\_Properties\_GetIsNullFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv436QairtTensor_Properties_GetIsNullFn_t) getIsNull

    - 

- [QairtTensor\_Properties\_SetIsStaticFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv438QairtTensor_Properties_SetIsStaticFn_t) setIsStatic

    - 

- [QairtTensor\_Properties\_GetIsStaticFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv438QairtTensor_Properties_GetIsStaticFn_t) getIsStatic

    - 

- [QairtTensor\_Properties\_SetIsOptionalFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv440QairtTensor_Properties_SetIsOptionalFn_t) setIsOptional

    - 

- [QairtTensor\_Properties\_GetIsOptionalFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv440QairtTensor_Properties_GetIsOptionalFn_t) getIsOptional

    - 

- [QairtTensor\_Properties\_SetIsUpdatableFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv441QairtTensor_Properties_SetIsUpdatableFn_t) setIsUpdatable

    - 

- [QairtTensor\_Properties\_GetIsUpdatableFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv441QairtTensor_Properties_GetIsUpdatableFn_t) getIsUpdatable

    -

Functions

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_Properties\_create([QairtTensor\_PropertiesHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv430QairtTensor_PropertiesHandle_t) \*tensorPropertiesHandle)

    - Create a tensor properties handle.

- Parameters

    - **tensorPropertiesHandle** – **[out]** A handle to the created tensor properties.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Tensor properties was successfully created.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: *tensorPropertiesHandle* is NULL.
- QAIRT\_TENSOR\_ERROR\_MEM\_ALLOC: Memory allocation error while creating tensor properties.

Note

Use corresponding API through [QairtTensor\_PropertiesV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__PropertiesV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_Properties\_free([QairtTensor\_PropertiesHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv430QairtTensor_PropertiesHandle_t) tensorPropertiesHandle)

    - Free a tensor properties handle and associated resources.

- Parameters

    - **tensorPropertiesHandle** – **[in]** A handle to a created tensor properties.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Tensor properties was successfully freed.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorPropertiesHandle* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_MEM\_ALLOC: Memory deallocation error.

Note

Use corresponding API through [QairtTensor\_PropertiesV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__PropertiesV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_Properties\_setIsInput([QairtTensor\_PropertiesHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv430QairtTensor_PropertiesHandle_t) tensorPropertiesHandle, uint8\_t isInput)

    - Set the input property of tensor properties.

- Parameters

    - - **tensorPropertiesHandle** – **[in]** A handle to a created tensor properties.
- **isInput** – **[in]** Flag indicating whether tensor is an input (1) or not (0).

- Returns

    - Error code:

- QAIRT\_SUCCESS: Input property was successfully set.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorPropertiesHandle* is not a valid handle.

Note

Use corresponding API through [QairtTensor\_PropertiesV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__PropertiesV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_Properties\_getIsInput([QairtTensor\_PropertiesHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv430QairtTensor_PropertiesHandle_t) tensorPropertiesHandle, uint8\_t \*isInput)

    - Get the input property of tensor properties.

- Parameters

    - - **tensorPropertiesHandle** – **[in]** A handle to a created tensor properties.
- **isInput** – **[out]** Flag indicating whether tensor is an input (1) or not (0).

- Returns

    - Error code:

- QAIRT\_SUCCESS: Input property was successfully retrieved.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorPropertiesHandle* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: *isInput* is NULL.

Note

Use corresponding API through [QairtTensor\_PropertiesV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__PropertiesV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_Properties\_setIsOutput([QairtTensor\_PropertiesHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv430QairtTensor_PropertiesHandle_t) tensorPropertiesHandle, uint8\_t isOutput)

    - Set the output property of tensor properties.

- Parameters

    - - **tensorPropertiesHandle** – **[in]** A handle to a created tensor properties.
- **isOutput** – **[in]** Flag indicating whether tensor is an output (1) or not (0).

- Returns

    - Error code:

- QAIRT\_SUCCESS: Output property was successfully set.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorPropertiesHandle* is not a valid handle.

Note

Use corresponding API through [QairtTensor\_PropertiesV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__PropertiesV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_Properties\_getIsOutput([QairtTensor\_PropertiesHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv430QairtTensor_PropertiesHandle_t) tensorPropertiesHandle, uint8\_t \*isOutput)

    - Get the output property of tensor properties.

- Parameters

    - - **tensorPropertiesHandle** – **[in]** A handle to a created tensor properties.
- **isOutput** – **[out]** Flag indicating whether tensor is an output (1) or not (0).

- Returns

    - Error code:

- QAIRT\_SUCCESS: Output property was successfully retrieved.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorPropertiesHandle* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: *isOutput* is NULL.

Note

Use corresponding API through [QairtTensor\_PropertiesV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__PropertiesV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_Properties\_setIsNative([QairtTensor\_PropertiesHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv430QairtTensor_PropertiesHandle_t) tensorPropertiesHandle, uint8\_t isNative)

    - Set the native property of tensor properties.

- Parameters

    - - **tensorPropertiesHandle** – **[in]** A handle to a created tensor properties.
- **isNative** – **[in]** Flag indicating whether tensor is native (1) or not (0).

- Returns

    - Error code:

- QAIRT\_SUCCESS: Native property was successfully set.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorPropertiesHandle* is not a valid handle.

Note

Use corresponding API through [QairtTensor\_PropertiesV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__PropertiesV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_Properties\_getIsNative([QairtTensor\_PropertiesHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv430QairtTensor_PropertiesHandle_t) tensorPropertiesHandle, uint8\_t \*isNative)

    - Get the native property of tensor properties.

- Parameters

    - - **tensorPropertiesHandle** – **[in]** A handle to a created tensor properties.
- **isNative** – **[out]** Flag indicating whether tensor is native (1) or not (0).

- Returns

    - Error code:

- QAIRT\_SUCCESS: Native property was successfully retrieved.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorPropertiesHandle* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: *isNative* is NULL.

Note

Use corresponding API through [QairtTensor\_PropertiesV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__PropertiesV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_Properties\_setIsNull([QairtTensor\_PropertiesHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv430QairtTensor_PropertiesHandle_t) tensorPropertiesHandle, uint8\_t isNull)

    - Set the null property of tensor properties.

- Parameters

    - - **tensorPropertiesHandle** – **[in]** A handle to a created tensor properties.
- **isNull** – **[in]** Flag indicating whether tensor is null (1) or not (0).

- Returns

    - Error code:

- QAIRT\_SUCCESS: Null property was successfully set.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorPropertiesHandle* is not a valid handle.

Note

Use corresponding API through [QairtTensor\_PropertiesV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__PropertiesV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_Properties\_getIsNull([QairtTensor\_PropertiesHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv430QairtTensor_PropertiesHandle_t) tensorPropertiesHandle, uint8\_t \*isNull)

    - Get the null property of tensor properties.

- Parameters

    - - **tensorPropertiesHandle** – **[in]** A handle to a created tensor properties.
- **isNull** – **[out]** Flag indicating whether tensor is null (1) or not (0).

- Returns

    - Error code:

- QAIRT\_SUCCESS: Null property was successfully retrieved.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorPropertiesHandle* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: *isNull* is NULL.

Note

Use corresponding API through [QairtTensor\_PropertiesV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__PropertiesV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_Properties\_setIsOptional([QairtTensor\_PropertiesHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv430QairtTensor_PropertiesHandle_t) tensorPropertiesHandle, uint8\_t isOptional)

    - Set the optional property of tensor properties.

- Parameters

    - - **tensorPropertiesHandle** – **[in]** A handle to a created tensor properties.
- **isOptional** – **[in]** Flag indicating whether tensor is optional (1) or not (0).

- Returns

    - Error code:

- QAIRT\_SUCCESS: Optional property was successfully set.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorPropertiesHandle* is not a valid handle.

Note

Use corresponding API through [QairtTensor\_PropertiesV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__PropertiesV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_Properties\_getIsOptional([QairtTensor\_PropertiesHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv430QairtTensor_PropertiesHandle_t) tensorPropertiesHandle, uint8\_t \*isOptional)

    - Get the optional property of tensor properties.

- Parameters

    - - **tensorPropertiesHandle** – **[in]** A handle to a created tensor properties.
- **isOptional** – **[out]** Flag indicating whether tensor is optional (1) or not (0).

- Returns

    - Error code:

- QAIRT\_SUCCESS: Optional property was successfully retrieved.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorPropertiesHandle* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: *isOptional* is NULL.

Note

Use corresponding API through [QairtTensor\_PropertiesV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__PropertiesV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_Properties\_setIsStatic([QairtTensor\_PropertiesHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv430QairtTensor_PropertiesHandle_t) tensorPropertiesHandle, uint8\_t isStatic)

    - Set the static property of tensor properties.

- Parameters

    - - **tensorPropertiesHandle** – **[in]** A handle to a created tensor properties.
- **isStatic** – **[in]** Flag indicating whether tensor is static (1) or not (0).

- Returns

    - Error code:

- QAIRT\_SUCCESS: Static property was successfully set.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorPropertiesHandle* is not a valid handle.

Note

Use corresponding API through [QairtTensor\_PropertiesV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__PropertiesV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_Properties\_getIsStatic([QairtTensor\_PropertiesHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv430QairtTensor_PropertiesHandle_t) tensorPropertiesHandle, uint8\_t \*isStatic)

    - Get the static property of tensor properties.

- Parameters

    - - **tensorPropertiesHandle** – **[in]** A handle to a created tensor properties.
- **isStatic** – **[out]** Flag indicating whether tensor is static (1) or not (0).

- Returns

    - Error code:

- QAIRT\_SUCCESS: Static property was successfully retrieved.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorPropertiesHandle* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: *isStatic* is NULL.

Note

Use corresponding API through [QairtTensor\_PropertiesV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__PropertiesV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_Properties\_setIsUpdatable([QairtTensor\_PropertiesHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv430QairtTensor_PropertiesHandle_t) tensorPropertiesHandle, uint8\_t isUpdatable)

    - Set the updatable property of tensor properties.

- Parameters

    - - **tensorPropertiesHandle** – **[in]** A handle to a created tensor properties.
- **isUpdatable** – **[in]** Flag indicating whether tensor is updatable (1) or not (0).

- Returns

    - Error code:

- QAIRT\_SUCCESS: Updatable property was successfully set.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorPropertiesHandle* is not a valid handle.

Note

Use corresponding API through [QairtTensor\_PropertiesV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__PropertiesV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtTensor\_Properties\_getIsUpdatable([QairtTensor\_PropertiesHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv430QairtTensor_PropertiesHandle_t) tensorPropertiesHandle, uint8\_t \*isUpdatable)

    - Get the updatable property of tensor properties.

- Parameters

    - - **tensorPropertiesHandle** – **[in]** A handle to a created tensor properties.
- **isUpdatable** – **[out]** Flag indicating whether tensor is updatable (1) or not (0).

- Returns

    - Error code:

- QAIRT\_SUCCESS: Updatable property was successfully retrieved.
- QAIRT\_TENSOR\_ERROR\_INVALID\_HANDLE: *tensorPropertiesHandle* is not a valid handle.
- QAIRT\_TENSOR\_ERROR\_INVALID\_ARGUMENT: *isUpdatable* is NULL.

Note

Use corresponding API through [QairtTensor\_PropertiesV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#structQairtTensor__PropertiesV1__t).

Typedefs

- typedef struct \_QairtTensor\_PropertiesHandle\_t \*QairtTensor\_PropertiesHandle\_t

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_Properties\_CreateFn\_t)([QairtTensor\_PropertiesHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv430QairtTensor_PropertiesHandle_t)\*)

    - Create/Free.

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_Properties\_FreeFn\_t)([QairtTensor\_PropertiesHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv430QairtTensor_PropertiesHandle_t))

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_Properties\_SetIsInputFn\_t)([QairtTensor\_PropertiesHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv430QairtTensor_PropertiesHandle_t), uint8\_t)

    - Input Tensor.

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_Properties\_GetIsInputFn\_t)([QairtTensor\_PropertiesHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv430QairtTensor_PropertiesHandle_t), uint8\_t\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_Properties\_SetIsOutputFn\_t)([QairtTensor\_PropertiesHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv430QairtTensor_PropertiesHandle_t), uint8\_t)

    - Output Tensor.

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_Properties\_GetIsOutputFn\_t)([QairtTensor\_PropertiesHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv430QairtTensor_PropertiesHandle_t), uint8\_t\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_Properties\_SetIsNativeFn\_t)([QairtTensor\_PropertiesHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv430QairtTensor_PropertiesHandle_t), uint8\_t)

    - Native Tensor.

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_Properties\_GetIsNativeFn\_t)([QairtTensor\_PropertiesHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv430QairtTensor_PropertiesHandle_t), uint8\_t\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_Properties\_SetIsNullFn\_t)([QairtTensor\_PropertiesHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv430QairtTensor_PropertiesHandle_t), uint8\_t)

    - Null Tensor.

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_Properties\_GetIsNullFn\_t)([QairtTensor\_PropertiesHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv430QairtTensor_PropertiesHandle_t), uint8\_t\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_Properties\_SetIsStaticFn\_t)([QairtTensor\_PropertiesHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv430QairtTensor_PropertiesHandle_t), uint8\_t)

    - Static Tensor.

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_Properties\_GetIsStaticFn\_t)([QairtTensor\_PropertiesHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv430QairtTensor_PropertiesHandle_t), uint8\_t\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_Properties\_SetIsOptionalFn\_t)([QairtTensor\_PropertiesHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv430QairtTensor_PropertiesHandle_t), uint8\_t)

    - Optional Tensor.

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_Properties\_GetIsOptionalFn\_t)([QairtTensor\_PropertiesHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv430QairtTensor_PropertiesHandle_t), uint8\_t\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_Properties\_SetIsUpdatableFn\_t)([QairtTensor\_PropertiesHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv430QairtTensor_PropertiesHandle_t), uint8\_t)

    - Updatable Tensor.

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtTensor\_Properties\_GetIsUpdatableFn\_t)([QairtTensor\_PropertiesHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTensor.html#_CPPv430QairtTensor_PropertiesHandle_t), uint8\_t\*)

    -

Last Published: Jun 04, 2026

[Previous Topic
QairtGraph](https://docs.qualcomm.com/bundle/publicresource/80-63442-10/topics/QairtGraph.md) [Next Topic
QairtBackend](https://docs.qualcomm.com/bundle/publicresource/80-63442-10/topics/QairtBackend.md)