apytypes_common.h

Enums

enum class QuantizationMode

Quantization modes in APyTypes.

Values:

enumerator TRN
enumerator TRN_INF
enumerator TRN_ZERO
enumerator TRN_AWAY
enumerator TRN_MAG
enumerator RND
enumerator RND_ZERO
enumerator RND_INF
enumerator RND_MIN_INF
enumerator RND_CONV
enumerator RND_CONV_ODD
enumerator JAM
enumerator JAM_UNBIASED
enumerator STOCH_WEIGHTED
enumerator STOCH_EQUAL
enum class OverflowMode

Overflowing modes in APyTypes.

Values:

enumerator WRAP
enumerator SAT
enumerator NUMERIC_STD

Functions

void set_float_quantization_mode(QuantizationMode mode)

Set the global quantization mode for APyFloat.

QuantizationMode get_float_quantization_mode()

Return the global quantization mode for APyFloat.

void set_float_quantization_seed(std::uint64_t)

Set the global seed for stochastic quantization for APyFloat.

std::uint64_t get_float_quantization_seed()

Get the global seed for stochastic quantization for APyFloat.

std::uint64_t random_number_float()

Return a random 64-bit number from the random number engine used for APyFloat.

APyFixedCastOption get_fixed_cast_mode()

Return the global cast mode for APyFixed.

std::optional<APyFixedAccumulatorOption> get_accumulator_mode_fixed()

Return the global accumulator mode for APyFixed.

std::optional<APyFloatAccumulatorOption> get_accumulator_mode_float()

Return the global accumulator mode for APyFloat.

class ContextManager

Subclassed by APyFixedAccumulatorContext, APyFixedCastContext, APyFloatAccumulatorContext, APyFloatQuantizationContext

Public Functions

virtual ~ContextManager() = default
virtual void enter_context() = 0
virtual void exit_context() = 0
class APyFloatQuantizationContext : public ContextManager

Public Functions

APyFloatQuantizationContext(const QuantizationMode &new_mode, std::optional<std::uint64_t> new_seed = std::nullopt)
virtual void enter_context() override
virtual void exit_context() override

Private Members

QuantizationMode new_mode
QuantizationMode prev_mode
std::uint64_t new_seed
std::uint64_t prev_seed
struct APyFixedCastOption

Public Members

QuantizationMode quantization
OverflowMode overflow

Quantization mode to use for cast operations.

class APyFixedCastContext : public ContextManager

Public Functions

APyFixedCastContext(std::optional<QuantizationMode> quantization = std::nullopt, std::optional<OverflowMode> overflow = std::nullopt)
virtual void enter_context() override
virtual void exit_context() override

Private Members

APyFixedCastOption current_mode
APyFixedCastOption previous_mode
struct APyFixedAccumulatorOption

Public Members

int bits
int int_bits

Total number of bits to use for accumulator.

QuantizationMode quantization

Number of integer bits to use for accumulator.

OverflowMode overflow

Quantization mode to use for multiplication result.

class APyFixedAccumulatorContext : public ContextManager

Public Functions

APyFixedAccumulatorContext(std::optional<int> int_bits = std::nullopt, std::optional<int> frac_bits = std::nullopt, std::optional<QuantizationMode> quantization = std::nullopt, std::optional<OverflowMode> overflow = std::nullopt, std::optional<int> bits = std::nullopt)
virtual void enter_context() override
virtual void exit_context() override

Private Members

std::optional<APyFixedAccumulatorOption> current_mode
std::optional<APyFixedAccumulatorOption> previous_mode
struct APyFloatAccumulatorOption

Public Functions

inline APyFloatSpec get_spec(exp_t backup_bias) const noexcept

Public Members

std::uint8_t exp_bits
std::uint8_t man_bits
std::optional<exp_t> bias
QuantizationMode quantization
class APyFloatAccumulatorContext : public ContextManager

Public Functions

APyFloatAccumulatorContext(std::optional<int> = std::nullopt, std::optional<int> = std::nullopt, std::optional<exp_t> = std::nullopt, std::optional<QuantizationMode> quantization = std::nullopt)
virtual void enter_context() override
virtual void exit_context() override

Private Members

std::optional<APyFloatAccumulatorOption> current_mode
std::optional<APyFloatAccumulatorOption> previous_mode