| //===-- mlir-c/Dialect/Complex.h - C API for Complex dialect ------*- C -*-===// |
| // |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM |
| // Exceptions. |
| // See https://llvm.org/LICENSE.txt for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef MLIR_C_DIALECT_COMPLEX_H |
| #define MLIR_C_DIALECT_COMPLEX_H |
| |
| #include "mlir-c/IR.h" |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(Complex, complex); |
| |
| /// Checks whether the given attribute is a complex attribute. |
| MLIR_CAPI_EXPORTED bool mlirAttributeIsAComplex(MlirAttribute attr); |
| |
| /// Creates a complex attribute in the given context with the given |
| /// double real and imaginary values and double-precision FP semantics. |
| MLIR_CAPI_EXPORTED MlirAttribute mlirComplexAttrDoubleGet(MlirContext ctx, |
| MlirType type, |
| double real, |
| double imag); |
| |
| /// Same as "mlirComplexAttrDoubleGet", but if the type is not valid for a |
| /// construction of a ComplexAttr, returns a null MlirAttribute. |
| MLIR_CAPI_EXPORTED MlirAttribute mlirComplexAttrDoubleGetChecked( |
| MlirLocation loc, MlirType type, double real, double imag); |
| |
| /// Returns the real value stored in the given complex attribute, interpreting |
| /// the value as double. |
| MLIR_CAPI_EXPORTED double mlirComplexAttrGetRealDouble(MlirAttribute attr); |
| |
| /// Returns the imaginaryvalue stored in the given complex attribute, |
| /// interpreting the value as double. |
| MLIR_CAPI_EXPORTED double mlirComplexAttrGetImagDouble(MlirAttribute attr); |
| |
| /// Returns the typeID of a Complex attribute. |
| MLIR_CAPI_EXPORTED MlirTypeID mlirComplexAttrGetTypeID(void); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif // MLIR_C_DIALECT_COMPLEX_H |