17#include <mlir/CAPI/Registration.h>
18#include <mlir/CAPI/Wrap.h>
24MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(Felt, llzk__felt,
FeltDialect)
27 return wrap(FeltConstAttr::get(unwrap(ctx),
toAPInt(value)));
31 return wrap(FeltConstAttr::get(unwrap(ctx), APInt(numBits, value)));
35 return wrap(FeltConstAttr::get(unwrap(ctx), numBits, unwrap(str)));
39 MlirContext context,
unsigned numBits,
const uint64_t *parts, intptr_t nParts
41 return wrap(FeltConstAttr::get(unwrap(context), numBits, ArrayRef(parts, nParts)));
45 return llvm::isa<FeltConstAttr>(unwrap(attr));
MlirAttribute llzkFeltConstAttrGet(MlirContext ctx, int64_t value)
Creates a llzk::felt::FeltConstAttr.
MlirAttribute llzkFeltConstAttrGetFromParts(MlirContext context, unsigned numBits, const uint64_t *parts, intptr_t nParts)
Creates a llzk::felt::FeltConstAttr from an array of big-integer parts in LSB order.
MlirType llzkFeltTypeGet(MlirContext ctx)
Creates a llzk::felt::FeltType.
bool llzkTypeIsAFeltType(MlirType type)
bool llzkAttributeIsAFeltConstAttr(MlirAttribute attr)
MlirAttribute llzkFeltConstAttrGetWithBits(MlirContext ctx, unsigned numBits, int64_t value)
Creates a llzk::felt::FeltConstAttr with a set bit length.
MlirAttribute llzkFeltConstAttrGetFromString(MlirContext ctx, unsigned numBits, MlirStringRef str)
Creates a llzk::felt::FeltConstAttr from a base-10 representation of a number.
::llzk::felt::FeltType get(::mlir::MLIRContext *context)
llvm::APInt toAPInt(int64_t i)