Utility functions¶
Create scalars and arrays¶
- apytypes.fx(value: int | float, int_bits: int | None = None, frac_bits: int | None = None, bits: int | None = None, *, force_complex: Literal[False] = False) APyFixed¶
- apytypes.fx(value: int | float, int_bits: int | None = None, frac_bits: int | None = None, bits: int | None = None, *, force_complex: Literal[True]) APyCFixed
- apytypes.fx(value: complex, int_bits: int | None = None, frac_bits: int | None = None, bits: int | None = None, *, force_complex: bool = False) APyCFixed
- apytypes.fx(value: Iterable[Any], int_bits: int | None = None, frac_bits: int | None = None, bits: int | None = None, *, force_complex: Literal[False] = False) APyFixedArray
- apytypes.fx(value: Iterable[Any], int_bits: int | None = None, frac_bits: int | None = None, bits: int | None = None, *, force_complex: Literal[True]) APyCFixedArray
Create a fixed-point scalar or array.
Convenience function that passes value and bit-specifiers to one of:
depending on value. Returns
APyFixedwhen value isintorfloat. ReturnsAPyCFixedwhen value iscomplexor when force_complex isTrue. ReturnsAPyFixedArrayorAPyCFixedArraywhen value is a sequence of numbers.Added in version 0.3.
- Parameters:
- val
int,float, list of int or float, ndarray Floating-point/integer/complex value(s) to initialize from.
- int_bits
int, optional Number of integer bits in the created fixed-point object.
- frac_bits
int, optional Number of fractional bits in the created fixed-point object.
- bits
int, optional Total number of bits in the created fixed-point object.
- force_complex
bool, default:False If
True, force the return value to beAPyCFixedorAPyCFixedArray, even if value is real.
- val
- Returns:
- apytypes.fp(value: int | float, exp_bits: int, man_bits: int, bias: int | None = None, *, force_complex: Literal[False] = False) APyFloat¶
- apytypes.fp(value: int | float, exp_bits: int, man_bits: int, bias: int | None = None, *, force_complex: Literal[True]) APyCFloat
- apytypes.fp(value: complex, exp_bits: int, man_bits: int, bias: int | None = None, *, force_complex: bool = False) APyCFloat
- apytypes.fp(value: Iterable[Any], exp_bits: int, man_bits: int, bias: int | None = None, *, force_complex: Literal[False] = False) APyFloatArray
- apytypes.fp(value: Iterable[Any], exp_bits: int, man_bits: int, bias: int | None = None, *, force_complex: Literal[True]) APyCFloatArray
Create a floating-point scalar or array.
Convenience function that passes value and bit-specifiers to one of:
depending on value. Returns
APyFloatwhen value isintorfloat. ReturnsAPyCFloatwhen value iscomplexor when force_complex isTrue. ReturnsAPyFloatArrayorAPyCFloatArraywhen value is a sequence of numbers.Added in version 0.3.
- Parameters:
- value
int,float, list of int or float, ndarray Floating-point/integer/complex value(s) to initialize from.
- exp_bits
int Number of exponent bits.
- man_bits
int Number of mantissa bits.
- bias
int, optional Exponent bias. If not provided, bias is
2**(exp_bits - 1) - 1.- force_complex
bool, default:False If
True, force the return value to beAPyCFloatorAPyCFloatArray, even if value is real.
- value
- Returns:
- apytypes.from_bits(bit_patterns: int, *, int_bits: int | None = None, frac_bits: int | None = None, bits: int | None = None, exp_bits: None = None, man_bits: None = None, bias: None = None, force_complex: Literal[False] = False) APyFixed¶
- apytypes.from_bits(bit_patterns: int, *, int_bits: int | None = None, frac_bits: int | None = None, bits: int | None = None, exp_bits: None = None, man_bits: None = None, bias: None = None, force_complex: Literal[True]) APyCFixed
- apytypes.from_bits(bit_patterns: int, *, int_bits: int | None = None, frac_bits: int | None = None, bits: int | None = None, exp_bits: None = None, man_bits: None = None, bias: None = None, force_complex: bool) APyFixed | APyCFixed
- apytypes.from_bits(bit_patterns: Iterable[Any], *, int_bits: int | None = None, frac_bits: int | None = None, bits: int | None = None, exp_bits: None = None, man_bits: None = None, bias: None = None, force_complex: Literal[False] = False) APyFixedArray
- apytypes.from_bits(bit_patterns: Iterable[Any], *, int_bits: int | None = None, frac_bits: int | None = None, bits: int | None = None, exp_bits: None = None, man_bits: None = None, bias: None = None, force_complex: Literal[True]) APyCFixedArray
- apytypes.from_bits(bit_patterns: Iterable[Any], *, int_bits: int | None = None, frac_bits: int | None = None, bits: int | None = None, exp_bits: None = None, man_bits: None = None, bias: None = None, force_complex: bool) APyFixedArray | APyCFixedArray
- apytypes.from_bits(bit_patterns: int, *, int_bits: None = None, frac_bits: None = None, bits: None = None, exp_bits: int, man_bits: int, bias: int | None = None, force_complex: Literal[False] = False) APyFloat
- apytypes.from_bits(bit_patterns: int, *, int_bits: None = None, frac_bits: None = None, bits: None = None, exp_bits: int, man_bits: int, bias: int | None = None, force_complex: Literal[True]) APyCFloat
- apytypes.from_bits(bit_patterns: int, *, int_bits: None = None, frac_bits: None = None, bits: None = None, exp_bits: int, man_bits: int, bias: int | None = None, force_complex: bool) APyFloat | APyCFloat
- apytypes.from_bits(bit_patterns: Iterable[Any], *, int_bits: None = None, frac_bits: None = None, bits: None = None, exp_bits: int, man_bits: int, bias: int | None = None, force_complex: Literal[False] = False) APyFloatArray
- apytypes.from_bits(bit_patterns: Iterable[Any], *, int_bits: None = None, frac_bits: None = None, bits: None = None, exp_bits: int, man_bits: int, bias: int | None = None, force_complex: Literal[True]) APyCFloatArray
- apytypes.from_bits(bit_patterns: Iterable[Any], *, int_bits: None = None, frac_bits: None = None, bits: None = None, exp_bits: int, man_bits: int, bias: int | None = None, force_complex: bool) APyFloatArray | APyCFloatArray
Create an APyType scalar or array from bit pattern.
Added in version 0.6.
- Parameters:
- bit_patterns
intorIterable Bit representation of the number(s). Number of rows and columns in output.
- int_bits
int, optional Number of fixed-point integer bits.
- frac_bits
int, optional Number of fixed-point fractional bits.
- bits
int, optional Number of fixed-point bits.
- exp_bits
int, optional Number of floating-point exponential bits.
- man_bits
int, optional Number of floating-point mantissa bits.
- bias
int, optional Exponent bias. If not provided, bias is
2**(exp_bits - 1) - 1.- force_complex
bool, optional Returns a complex-valued type.
- bit_patterns
- Returns:
- result
APyFixed,APyFloat,APyFixedArray,APyFloatArray,APyCFixed,APyCFloat,APyCFixedArrayorAPyCFloatArray
- result
Evaluate functions¶
- apytypes.fn(fn: Callable[[int | float], int | float], *args: APyFloat | APyFixed | APyFixedArray | APyFloatArray) APyFloat | APyFixed | APyFixedArray | APyFloatArray¶
Utility function to evaluate functions on arguments and convert back.
This does exactly:
Convert argument(s) to float
Evaluate function with float argument(s)
Convert result back to the same type as the argument
Hence, there may be numerical issues, but it provides a simple way to perform, e.g.,
sin, assuming that it is based on a look-up table.Added in version 0.3.
- Parameters:
- fncallable
The function to evaluate.
- argsAPyFixed, APyFloat, APyFixedArray, APyFloatArray
The argument(s) to evaluate the function for.
- Returns:
Examples
>>> import apytypes as apy >>> import math >>> a = apy.APyFixed(19, 1, 5) >>> apy.fn(math.sin, a) APyFixed(18, int_bits=1, frac_bits=5)