LLZK 2.1.1
An open-source IR for Zero Knowledge (ZK) circuits
Loading...
Searching...
No Matches
WitgenUtils.h File Reference
#include "Errors.h"
#include "WitgenDriver.h"
#include <mlir/IR/BuiltinTypes.h>
#include <llvm/ADT/ArrayRef.h>
#include <llvm/ADT/DynamicAPInt.h>
#include <llvm/ADT/StringRef.h>
#include <llvm/Support/Error.h>
#include <cstddef>
#include <random>
#include <utility>
Include dependency graph for WitgenUtils.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  llzk
namespace  llzk::witgen

Functions

template<typename T, typename U>
llvm::Expected< T > llzk::witgen::checkedCast (U u)
std::mt19937_64 llzk::witgen::makeDefaultValueRng (const WitgenOptions &options)
 Seed an RNG for random/default witness value materialization.
llvm::DynamicAPInt llzk::witgen::randomFieldElement (std::mt19937_64 &rng, const Field &field)
 Draw a uniformly distributed field element in [0, prime).
int64_t llzk::witgen::randomIndexValue (std::mt19937_64 &rng)
 Draw a uniformly distributed signed index value.
bool llzk::witgen::randomBoolValue (std::mt19937_64 &rng)
 Draw a uniformly distributed boolean value.
llvm::Expected< size_t > llzk::witgen::checkedShapeDimToSize (int64_t dim, llvm::StringRef context)
 Convert one static dimension to size_t, rejecting dynamic or invalid sizes.
llvm::Expected< size_t > llzk::witgen::checkedDynamicAPIntToSize (const llvm::DynamicAPInt &value, llvm::StringRef context)
 Convert a DynamicAPInt into size_t after validating its range.
llvm::Expected< size_t > llzk::witgen::getStaticShapeElementCount (llvm::ArrayRef< int64_t > shape, llvm::StringRef context)
 Return the static element count for one shape, rejecting dynamic sizes.
llvm::Expected< size_t > llzk::witgen::getStaticElementCount (mlir::ShapedType type, llvm::StringRef context)
 Return the static element count for one shaped type.