21#include <mlir/CAPI/Registration.h>
22#include <mlir/CAPI/Wrap.h>
33MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(Felt, llzk__felt,
FeltDialect)
35MLIR_CAPI_EXPORTED MlirAttribute
37 return wrap(FeltConstAttr::get(unwrap(ctx),
toAPInt(value), unwrap(fieldName)));
40MLIR_CAPI_EXPORTED MlirAttribute
42 return wrap(FeltConstAttr::get(unwrap(ctx),
toAPInt(value)));
45MLIR_CAPI_EXPORTED MlirAttribute
51 MlirContext ctx,
unsigned numBits, int64_t value, MlirStringRef fieldName
53 return wrap(FeltConstAttr::get(unwrap(ctx), APInt(numBits, value), unwrap(fieldName)));
56MLIR_CAPI_EXPORTED MlirAttribute
58 return wrap(FeltConstAttr::get(unwrap(ctx), APInt(numBits, value)));
62 MlirContext ctx,
unsigned numBits, MlirStringRef str, MlirType type
68 MlirContext ctx,
unsigned numBits, MlirStringRef str, MlirStringRef fieldName
70 return wrap(FeltConstAttr::get(unwrap(ctx), numBits, unwrap(str), unwrap(fieldName)));
74 MlirContext ctx,
unsigned numBits, MlirStringRef str
76 return wrap(FeltConstAttr::get(unwrap(ctx), numBits, unwrap(str)));
80 MlirContext ctx,
unsigned numBits,
const uint64_t *parts, intptr_t nParts, MlirType type
88 MlirContext ctx,
unsigned numBits,
const uint64_t *parts, intptr_t nParts,
89 MlirStringRef fieldName
91 return wrap(FeltConstAttr::get(unwrap(ctx), numBits, ArrayRef(parts, nParts), unwrap(fieldName)));
95 MlirContext ctx,
unsigned numBits,
const uint64_t *parts, intptr_t nParts
97 return wrap(FeltConstAttr::get(unwrap(ctx), numBits, ArrayRef(parts, nParts)));
101 MlirContext ctx, MlirIdentifier fieldName,
unsigned numBits, MlirStringRef primeStr
104 FieldSpecAttr::get(unwrap(ctx), unwrap(fieldName), APInt(numBits, unwrap(primeStr), 10))
109 MlirContext ctx, MlirIdentifier fieldName,
unsigned numBits,
const uint64_t *parts,
113 FieldSpecAttr::get(unwrap(ctx), unwrap(fieldName), APInt(numBits, ArrayRef(parts, nParts)))
MLIR_CAPI_EXPORTED MlirAttribute llzkFelt_FeltConstAttrGetFromPartsInField(MlirContext ctx, unsigned numBits, const uint64_t *parts, intptr_t nParts, MlirStringRef fieldName)
Creates a llzk::felt::FeltConstAttr from an array of big-integer parts in LSB order in the specified ...
MlirType llzkFelt_FeltTypeGetUnspecified(MlirContext ctx)
Creates a llzk::felt::FeltType with an unspecified field.
MLIR_CAPI_EXPORTED MlirAttribute llzkFelt_FeltConstAttrGetUnspecified(MlirContext ctx, int64_t value)
Creates a llzk::felt::FeltConstAttr with the given value in an unspecified field.
MLIR_CAPI_EXPORTED MlirAttribute llzkFelt_FeltConstAttrGetFromParts(MlirContext ctx, unsigned numBits, const uint64_t *parts, intptr_t nParts, MlirType type)
Creates a llzk::felt::FeltConstAttr from an array of big-integer parts in LSB order in the specified ...
MLIR_CAPI_EXPORTED MlirAttribute llzkFelt_FeltConstAttrGetFromPartsUnspecified(MlirContext ctx, unsigned numBits, const uint64_t *parts, intptr_t nParts)
Creates a llzk::felt::FeltConstAttr from an array of big-integer parts in LSB order in an unspecified...
MlirAttribute llzkFelt_FieldSpecAttrGetFromString(MlirContext ctx, MlirIdentifier fieldName, unsigned numBits, MlirStringRef primeStr)
Creates a llzk::felt::FieldSpecAttr from a base-10 representation of the prime.
MLIR_CAPI_EXPORTED MlirAttribute llzkFelt_FeltConstAttrGetFromString(MlirContext ctx, unsigned numBits, MlirStringRef str, MlirType type)
Creates a llzk::felt::FeltConstAttr from a base-10 representation of a number in the specified field.
MLIR_CAPI_EXPORTED MlirAttribute llzkFelt_FeltConstAttrGetInField(MlirContext ctx, int64_t value, MlirStringRef fieldName)
Creates a llzk::felt::FeltConstAttr with the given value in the specified field.
MLIR_CAPI_EXPORTED MlirAttribute llzkFelt_FeltConstAttrGetWithBitsInField(MlirContext ctx, unsigned numBits, int64_t value, MlirStringRef fieldName)
Creates a llzk::felt::FeltConstAttr with a set bit length and value in the specified field.
MlirAttribute llzkFelt_FieldSpecAttrGetFromParts(MlirContext ctx, MlirIdentifier fieldName, unsigned numBits, const uint64_t *parts, intptr_t nParts)
Creates a llzk::felt::FieldSpecAttr from an array of big-integer parts in LSB order representing the ...
MlirType llzkFelt_FeltTypeGetFromRef(MlirContext ctx, MlirStringRef fieldName)
Create a llzk::felt::FeltType Type with the given parameters.
MLIR_CAPI_EXPORTED MlirAttribute llzkFelt_FeltConstAttrGetFromStringInField(MlirContext ctx, unsigned numBits, MlirStringRef str, MlirStringRef fieldName)
Creates a llzk::felt::FeltConstAttr from a base-10 representation of a number in the specified field.
MLIR_CAPI_EXPORTED MlirAttribute llzkFelt_FeltConstAttrGetWithBitsUnspecified(MlirContext ctx, unsigned numBits, int64_t value)
Creates a llzk::felt::FeltConstAttr with a set bit length and value in an unspecified field.
MLIR_CAPI_EXPORTED MlirAttribute llzkFelt_FeltConstAttrGetFromStringUnspecified(MlirContext ctx, unsigned numBits, MlirStringRef str)
Creates a llzk::felt::FeltConstAttr from a base-10 representation of a number in an unspecified field...
MLIR_CAPI_EXPORTED MlirAttribute llzkFelt_FeltConstAttrGetWithBits(MlirContext ctx, unsigned numBits, int64_t value, MlirType type)
Creates a llzk::felt::FeltConstAttr with a set bit length and value in the specified field.
static FeltType get(::mlir::MLIRContext *context, ::mlir::StringAttr fieldName)
APInt toAPInt(const DynamicAPInt &val, unsigned bitWidth)
auto unwrap_cast(auto &from)