.. _set_status: set_status ========== Sets the global VM Status according to new values and returns the previous VM Status. .. contents:: :local: :depth: 1 Description *********** The ``set_status`` function sets the global VM Status to new value and returns the previous VM Status. The global VM Status is a single value and it accumulates via bitwise OR ( \| ) all errors that happen inside VM functions. The following table lists the possible error values. .. list-table:: :header-rows: 1 * - Status - Description * - **Successful Execution** - * - ``status::success`` - VM function execution completed successfully * - ``status::not_defined`` - VM status not defined * - **Warnings** - * - ``status::accuracy_warning`` - VM function execution completed successfully in a different accuracy mode * - **Computational Errors** - * - ``status::errdom`` - Values are out of a range of definition producing invalid (QNaN) result * - ``status::sing`` - Values cause divide-by-zero (singularity) errors and produce and invalid (QNaN or Inf) result * - ``status::overflow`` - An overflow happened during the calculation process * - ``status::underflow`` - An underflow happened during the calculation process API *** Syntax ------ .. code-block:: cpp uint8_t set_status (queue& exec_queue,uint_8 new_status ) ``set_status`` supports the following devices: Host, CPU, and GPU. Input Parameters ---------------- exec_queue The queue where the routine should be executed. new_status Specifies the VM status to be set. Output Parameters ----------------- return value (old_status) Specifies the former VM status. Examples ******** .. code-block:: uint8_t olderr = set_status (exec_queue, status::success); if (olderr & status::errdom) { std::cout << ”Errdom status returned” << std::endl; } if (olderr & status::sing) { std::cout << ”Singularity status returned” << std::endl; }