☰
float
float
Constructors
absolute value using `|a|` built from a `prefix |` and `postfix |` as an operator
alias of `a.abs`
Due to the low precedence of `|`, this works also on expressions like `|a-b|`, even
with spaces `| a-b |`, `|a - b|`, `| a-b|` or `|a-b |`.
Nesting, however, does not work, e.g, `| - |a| |`, this requires parentheses `|(- |a|)|`.
NYI: CLEANUP: Due to #3081, we need `postfix |` as the first operation, should be
`prefix |` firstFunctions
absolute value
convert a float value to i32 dropping any fraction.
the value must be in the range of i32
convert a float value to i64 dropping any fraction.
the value must be in the range of i64
create a String from this instance. Unless redefined, `a.as_string` will
create `"instance[T]"` where `T` is the dynamic type of `a`
this numeric value as an u8
ceiling: the smallest integer greater or equal to this
Get the dynamic type of this instance. For value instances `x`, this is
equal to `type_of x`, but for `x` with a `ref` type `x.dynamic_type` gives
the actual runtime type, while `type_of x` results in the static
compile-time type.
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types. So for Type values, dynamic_type is redefined
to just return Type.type.
the `val`-th power of ℇ
i.e. ℇᵛᵃˡ
the normalized exponent of this float
the biased exponent of this float
does this float value fit into an i64? This is redefined by children
of float that support `as_i64`.
does this numeric value fit into an u8? This is redefined by children
of numeric that support `as_u8`.
floor: the greatest integer lower or equal to this
basic operations: 'infix %' (division remainder)
basic operations: 'infix *' (multiplication)
basic operations: 'infix **' (exponentiation)
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
Constructors
absolute value using `|a|` built from a `prefix |` and `postfix |` as an operator
alias of `a.abs`
Due to the low precedence of `|`, this works also on expressions like `|a-b|`, even
with spaces `| a-b |`, `|a - b|`, `| a-b|` or `|a-b |`.
Nesting, however, does not work, e.g, `| - |a| |`, this requires parentheses `|(- |a|)|`.
NYI: CLEANUP: Due to #3081, we need `postfix |` as the first operation, should be
`prefix |` firstFunctions
absolute value
convert a float value to i32 dropping any fraction.
the value must be in the range of i32
convert a float value to i64 dropping any fraction.
the value must be in the range of i64
create a String from this instance. Unless redefined, `a.as_string` will
create `"instance[T]"` where `T` is the dynamic type of `a`
this numeric value as an u8
ceiling: the smallest integer greater or equal to this
Get the dynamic type of this instance. For value instances `x`, this is
equal to `type_of x`, but for `x` with a `ref` type `x.dynamic_type` gives
the actual runtime type, while `type_of x` results in the static
compile-time type.
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types. So for Type values, dynamic_type is redefined
to just return Type.type.
the `val`-th power of ℇ
i.e. ℇᵛᵃˡ
the normalized exponent of this float
the biased exponent of this float
does this float value fit into an i64? This is redefined by children
of float that support `as_i64`.
does this numeric value fit into an u8? This is redefined by children
of numeric that support `as_u8`.
floor: the greatest integer lower or equal to this
basic operations: 'infix %' (division remainder)
basic operations: 'infix *' (multiplication)
basic operations: 'infix **' (exponentiation)
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
absolute value using `|a|` built from a `prefix |` and `postfix |` as an operator
alias of `a.abs`
Due to the low precedence of `|`, this works also on expressions like `|a-b|`, even
with spaces `| a-b |`, `|a - b|`, `| a-b|` or `|a-b |`.
Nesting, however, does not work, e.g, `| - |a| |`, this requires parentheses `|(- |a|)|`.
NYI: CLEANUP: Due to #3081, we need `postfix |` as the first operation, should be
`prefix |` first
alias of `a.abs`
Due to the low precedence of `|`, this works also on expressions like `|a-b|`, even
with spaces `| a-b |`, `|a - b|`, `| a-b|` or `|a-b |`.
Nesting, however, does not work, e.g, `| - |a| |`, this requires parentheses `|(- |a|)|`.
NYI: CLEANUP: Due to #3081, we need `postfix |` as the first operation, should be
`prefix |` first
Functions
absolute value
convert a float value to i32 dropping any fraction.
the value must be in the range of i32
convert a float value to i64 dropping any fraction.
the value must be in the range of i64
create a String from this instance. Unless redefined, `a.as_string` will
create `"instance[T]"` where `T` is the dynamic type of `a`
this numeric value as an u8
ceiling: the smallest integer greater or equal to this
Get the dynamic type of this instance. For value instances `x`, this is
equal to `type_of x`, but for `x` with a `ref` type `x.dynamic_type` gives
the actual runtime type, while `type_of x` results in the static
compile-time type.
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types. So for Type values, dynamic_type is redefined
to just return Type.type.
the `val`-th power of ℇ
i.e. ℇᵛᵃˡ
the normalized exponent of this float
the biased exponent of this float
does this float value fit into an i64? This is redefined by children
of float that support `as_i64`.
does this numeric value fit into an u8? This is redefined by children
of numeric that support `as_u8`.
floor: the greatest integer lower or equal to this
basic operations: 'infix %' (division remainder)
basic operations: 'infix *' (multiplication)
basic operations: 'infix **' (exponentiation)
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
absolute value
convert a float value to i32 dropping any fraction.
the value must be in the range of i32
convert a float value to i64 dropping any fraction.
the value must be in the range of i64
create a String from this instance. Unless redefined, `a.as_string` will
create `"instance[T]"` where `T` is the dynamic type of `a`
this numeric value as an u8
ceiling: the smallest integer greater or equal to this
Get the dynamic type of this instance. For value instances `x`, this is
equal to `type_of x`, but for `x` with a `ref` type `x.dynamic_type` gives
the actual runtime type, while `type_of x` results in the static
compile-time type.
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types. So for Type values, dynamic_type is redefined
to just return Type.type.
the `val`-th power of ℇ
i.e. ℇᵛᵃˡ
the normalized exponent of this float
the biased exponent of this float
does this float value fit into an i64? This is redefined by children
of float that support `as_i64`.
does this numeric value fit into an u8? This is redefined by children
of numeric that support `as_u8`.
floor: the greatest integer lower or equal to this
basic operations: 'infix %' (division remainder)
basic operations: 'infix *' (multiplication)
basic operations: 'infix **' (exponentiation)
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
convert a float value to i32 dropping any fraction.
the value must be in the range of i32
convert a float value to i64 dropping any fraction.
the value must be in the range of i64
create a String from this instance. Unless redefined, `a.as_string` will
create `"instance[T]"` where `T` is the dynamic type of `a`
this numeric value as an u8
ceiling: the smallest integer greater or equal to this
Get the dynamic type of this instance. For value instances `x`, this is
equal to `type_of x`, but for `x` with a `ref` type `x.dynamic_type` gives
the actual runtime type, while `type_of x` results in the static
compile-time type.
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types. So for Type values, dynamic_type is redefined
to just return Type.type.
the `val`-th power of ℇ
i.e. ℇᵛᵃˡ
the normalized exponent of this float
the biased exponent of this float
does this float value fit into an i64? This is redefined by children
of float that support `as_i64`.
does this numeric value fit into an u8? This is redefined by children
of numeric that support `as_u8`.
floor: the greatest integer lower or equal to this
basic operations: 'infix %' (division remainder)
basic operations: 'infix *' (multiplication)
basic operations: 'infix **' (exponentiation)
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
convert a float value to i32 dropping any fraction.
the value must be in the range of i32
convert a float value to i64 dropping any fraction.
the value must be in the range of i64
create a String from this instance. Unless redefined, `a.as_string` will
create `"instance[T]"` where `T` is the dynamic type of `a`
this numeric value as an u8
ceiling: the smallest integer greater or equal to this
Get the dynamic type of this instance. For value instances `x`, this is
equal to `type_of x`, but for `x` with a `ref` type `x.dynamic_type` gives
the actual runtime type, while `type_of x` results in the static
compile-time type.
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types. So for Type values, dynamic_type is redefined
to just return Type.type.
the `val`-th power of ℇ
i.e. ℇᵛᵃˡ
the normalized exponent of this float
the biased exponent of this float
does this float value fit into an i64? This is redefined by children
of float that support `as_i64`.
does this numeric value fit into an u8? This is redefined by children
of numeric that support `as_u8`.
floor: the greatest integer lower or equal to this
basic operations: 'infix %' (division remainder)
basic operations: 'infix *' (multiplication)
basic operations: 'infix **' (exponentiation)
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
convert a float value to i32 dropping any fraction.
the value must be in the range of i32
the value must be in the range of i32
convert a float value to i64 dropping any fraction.
the value must be in the range of i64
create a String from this instance. Unless redefined, `a.as_string` will
create `"instance[T]"` where `T` is the dynamic type of `a`
this numeric value as an u8
ceiling: the smallest integer greater or equal to this
Get the dynamic type of this instance. For value instances `x`, this is
equal to `type_of x`, but for `x` with a `ref` type `x.dynamic_type` gives
the actual runtime type, while `type_of x` results in the static
compile-time type.
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types. So for Type values, dynamic_type is redefined
to just return Type.type.
the `val`-th power of ℇ
i.e. ℇᵛᵃˡ
the normalized exponent of this float
the biased exponent of this float
does this float value fit into an i64? This is redefined by children
of float that support `as_i64`.
does this numeric value fit into an u8? This is redefined by children
of numeric that support `as_u8`.
floor: the greatest integer lower or equal to this
basic operations: 'infix %' (division remainder)
basic operations: 'infix *' (multiplication)
basic operations: 'infix **' (exponentiation)
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
convert a float value to i64 dropping any fraction.
the value must be in the range of i64
the value must be in the range of i64
create a String from this instance. Unless redefined, `a.as_string` will
create `"instance[T]"` where `T` is the dynamic type of `a`
this numeric value as an u8
ceiling: the smallest integer greater or equal to this
Get the dynamic type of this instance. For value instances `x`, this is
equal to `type_of x`, but for `x` with a `ref` type `x.dynamic_type` gives
the actual runtime type, while `type_of x` results in the static
compile-time type.
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types. So for Type values, dynamic_type is redefined
to just return Type.type.
the `val`-th power of ℇ
i.e. ℇᵛᵃˡ
the normalized exponent of this float
the biased exponent of this float
does this float value fit into an i64? This is redefined by children
of float that support `as_i64`.
does this numeric value fit into an u8? This is redefined by children
of numeric that support `as_u8`.
floor: the greatest integer lower or equal to this
basic operations: 'infix %' (division remainder)
basic operations: 'infix *' (multiplication)
basic operations: 'infix **' (exponentiation)
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
create a String from this instance. Unless redefined, `a.as_string` will
create `"instance[T]"` where `T` is the dynamic type of `a`
create `"instance[T]"` where `T` is the dynamic type of `a`
this numeric value as an u8
ceiling: the smallest integer greater or equal to this
Get the dynamic type of this instance. For value instances `x`, this is
equal to `type_of x`, but for `x` with a `ref` type `x.dynamic_type` gives
the actual runtime type, while `type_of x` results in the static
compile-time type.
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types. So for Type values, dynamic_type is redefined
to just return Type.type.
the `val`-th power of ℇ
i.e. ℇᵛᵃˡ
the normalized exponent of this float
the biased exponent of this float
does this float value fit into an i64? This is redefined by children
of float that support `as_i64`.
does this numeric value fit into an u8? This is redefined by children
of numeric that support `as_u8`.
floor: the greatest integer lower or equal to this
basic operations: 'infix %' (division remainder)
basic operations: 'infix *' (multiplication)
basic operations: 'infix **' (exponentiation)
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
this numeric value as an u8
ceiling: the smallest integer greater or equal to this
Get the dynamic type of this instance. For value instances `x`, this is
equal to `type_of x`, but for `x` with a `ref` type `x.dynamic_type` gives
the actual runtime type, while `type_of x` results in the static
compile-time type.
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types. So for Type values, dynamic_type is redefined
to just return Type.type.
the `val`-th power of ℇ
i.e. ℇᵛᵃˡ
the normalized exponent of this float
the biased exponent of this float
does this float value fit into an i64? This is redefined by children
of float that support `as_i64`.
does this numeric value fit into an u8? This is redefined by children
of numeric that support `as_u8`.
floor: the greatest integer lower or equal to this
basic operations: 'infix %' (division remainder)
basic operations: 'infix *' (multiplication)
basic operations: 'infix **' (exponentiation)
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
ceiling: the smallest integer greater or equal to this
Get the dynamic type of this instance. For value instances `x`, this is
equal to `type_of x`, but for `x` with a `ref` type `x.dynamic_type` gives
the actual runtime type, while `type_of x` results in the static
compile-time type.
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types. So for Type values, dynamic_type is redefined
to just return Type.type.
the `val`-th power of ℇ
i.e. ℇᵛᵃˡ
the normalized exponent of this float
the biased exponent of this float
does this float value fit into an i64? This is redefined by children
of float that support `as_i64`.
does this numeric value fit into an u8? This is redefined by children
of numeric that support `as_u8`.
floor: the greatest integer lower or equal to this
basic operations: 'infix %' (division remainder)
basic operations: 'infix *' (multiplication)
basic operations: 'infix **' (exponentiation)
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
ceiling: the smallest integer greater or equal to this
Get the dynamic type of this instance. For value instances `x`, this is
equal to `type_of x`, but for `x` with a `ref` type `x.dynamic_type` gives
the actual runtime type, while `type_of x` results in the static
compile-time type.
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types. So for Type values, dynamic_type is redefined
to just return Type.type.
the `val`-th power of ℇ
i.e. ℇᵛᵃˡ
the normalized exponent of this float
the biased exponent of this float
does this float value fit into an i64? This is redefined by children
of float that support `as_i64`.
does this numeric value fit into an u8? This is redefined by children
of numeric that support `as_u8`.
floor: the greatest integer lower or equal to this
basic operations: 'infix %' (division remainder)
basic operations: 'infix *' (multiplication)
basic operations: 'infix **' (exponentiation)
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
ceiling: the smallest integer greater or equal to this
Get the dynamic type of this instance. For value instances `x`, this is
equal to `type_of x`, but for `x` with a `ref` type `x.dynamic_type` gives
the actual runtime type, while `type_of x` results in the static
compile-time type.
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types. So for Type values, dynamic_type is redefined
to just return Type.type.
the `val`-th power of ℇ
i.e. ℇᵛᵃˡ
the normalized exponent of this float
the biased exponent of this float
does this float value fit into an i64? This is redefined by children
of float that support `as_i64`.
does this numeric value fit into an u8? This is redefined by children
of numeric that support `as_u8`.
floor: the greatest integer lower or equal to this
basic operations: 'infix %' (division remainder)
basic operations: 'infix *' (multiplication)
basic operations: 'infix **' (exponentiation)
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
ceiling: the smallest integer greater or equal to this
Get the dynamic type of this instance. For value instances `x`, this is
equal to `type_of x`, but for `x` with a `ref` type `x.dynamic_type` gives
the actual runtime type, while `type_of x` results in the static
compile-time type.
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types. So for Type values, dynamic_type is redefined
to just return Type.type.
the `val`-th power of ℇ
i.e. ℇᵛᵃˡ
the normalized exponent of this float
the biased exponent of this float
does this float value fit into an i64? This is redefined by children
of float that support `as_i64`.
does this numeric value fit into an u8? This is redefined by children
of numeric that support `as_u8`.
floor: the greatest integer lower or equal to this
basic operations: 'infix %' (division remainder)
basic operations: 'infix *' (multiplication)
basic operations: 'infix **' (exponentiation)
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
ceiling: the smallest integer greater or equal to this
Get the dynamic type of this instance. For value instances `x`, this is
equal to `type_of x`, but for `x` with a `ref` type `x.dynamic_type` gives
the actual runtime type, while `type_of x` results in the static
compile-time type.
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types. So for Type values, dynamic_type is redefined
to just return Type.type.
the `val`-th power of ℇ
i.e. ℇᵛᵃˡ
the normalized exponent of this float
the biased exponent of this float
does this float value fit into an i64? This is redefined by children
of float that support `as_i64`.
does this numeric value fit into an u8? This is redefined by children
of numeric that support `as_u8`.
floor: the greatest integer lower or equal to this
basic operations: 'infix %' (division remainder)
basic operations: 'infix *' (multiplication)
basic operations: 'infix **' (exponentiation)
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
Get the dynamic type of this instance. For value instances `x`, this is
equal to `type_of x`, but for `x` with a `ref` type `x.dynamic_type` gives
the actual runtime type, while `type_of x` results in the static
compile-time type.
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types. So for Type values, dynamic_type is redefined
to just return Type.type.
the `val`-th power of ℇ
i.e. ℇᵛᵃˡ
the normalized exponent of this float
the biased exponent of this float
does this float value fit into an i64? This is redefined by children
of float that support `as_i64`.
does this numeric value fit into an u8? This is redefined by children
of numeric that support `as_u8`.
floor: the greatest integer lower or equal to this
basic operations: 'infix %' (division remainder)
basic operations: 'infix *' (multiplication)
basic operations: 'infix **' (exponentiation)
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
Get the dynamic type of this instance. For value instances `x`, this is
equal to `type_of x`, but for `x` with a `ref` type `x.dynamic_type` gives
the actual runtime type, while `type_of x` results in the static
compile-time type.
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types. So for Type values, dynamic_type is redefined
to just return Type.type.
the `val`-th power of ℇ
i.e. ℇᵛᵃˡ
the normalized exponent of this float
the biased exponent of this float
does this float value fit into an i64? This is redefined by children
of float that support `as_i64`.
does this numeric value fit into an u8? This is redefined by children
of numeric that support `as_u8`.
floor: the greatest integer lower or equal to this
basic operations: 'infix %' (division remainder)
basic operations: 'infix *' (multiplication)
basic operations: 'infix **' (exponentiation)
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
Get the dynamic type of this instance. For value instances `x`, this is
equal to `type_of x`, but for `x` with a `ref` type `x.dynamic_type` gives
the actual runtime type, while `type_of x` results in the static
compile-time type.
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types. So for Type values, dynamic_type is redefined
to just return Type.type.
equal to `type_of x`, but for `x` with a `ref` type `x.dynamic_type` gives
the actual runtime type, while `type_of x` results in the static
compile-time type.
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types. So for Type values, dynamic_type is redefined
to just return Type.type.
the `val`-th power of ℇ
i.e. ℇᵛᵃˡ
the normalized exponent of this float
the biased exponent of this float
does this float value fit into an i64? This is redefined by children
of float that support `as_i64`.
does this numeric value fit into an u8? This is redefined by children
of numeric that support `as_u8`.
floor: the greatest integer lower or equal to this
basic operations: 'infix %' (division remainder)
basic operations: 'infix *' (multiplication)
basic operations: 'infix **' (exponentiation)
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
the `val`-th power of ℇ
i.e. ℇᵛᵃˡ
i.e. ℇᵛᵃˡ
the normalized exponent of this float
the biased exponent of this float
does this float value fit into an i64? This is redefined by children
of float that support `as_i64`.
does this numeric value fit into an u8? This is redefined by children
of numeric that support `as_u8`.
floor: the greatest integer lower or equal to this
basic operations: 'infix %' (division remainder)
basic operations: 'infix *' (multiplication)
basic operations: 'infix **' (exponentiation)
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
the normalized exponent of this float
the biased exponent of this float
does this float value fit into an i64? This is redefined by children
of float that support `as_i64`.
does this numeric value fit into an u8? This is redefined by children
of numeric that support `as_u8`.
floor: the greatest integer lower or equal to this
basic operations: 'infix %' (division remainder)
basic operations: 'infix *' (multiplication)
basic operations: 'infix **' (exponentiation)
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
the biased exponent of this float
does this float value fit into an i64? This is redefined by children
of float that support `as_i64`.
does this numeric value fit into an u8? This is redefined by children
of numeric that support `as_u8`.
floor: the greatest integer lower or equal to this
basic operations: 'infix %' (division remainder)
basic operations: 'infix *' (multiplication)
basic operations: 'infix **' (exponentiation)
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
does this float value fit into an i64? This is redefined by children
of float that support `as_i64`.
of float that support `as_i64`.
does this numeric value fit into an u8? This is redefined by children
of numeric that support `as_u8`.
floor: the greatest integer lower or equal to this
basic operations: 'infix %' (division remainder)
basic operations: 'infix *' (multiplication)
basic operations: 'infix **' (exponentiation)
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
does this numeric value fit into an u8? This is redefined by children
of numeric that support `as_u8`.
of numeric that support `as_u8`.
floor: the greatest integer lower or equal to this
basic operations: 'infix %' (division remainder)
basic operations: 'infix *' (multiplication)
basic operations: 'infix **' (exponentiation)
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
floor: the greatest integer lower or equal to this
basic operations: 'infix %' (division remainder)
basic operations: 'infix *' (multiplication)
basic operations: 'infix **' (exponentiation)
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
basic operations: 'infix %' (division remainder)
basic operations: 'infix *' (multiplication)
basic operations: 'infix **' (exponentiation)
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
basic operations: 'infix %' (division remainder)
basic operations: 'infix *' (multiplication)
basic operations: 'infix **' (exponentiation)
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
basic operations: 'infix %' (division remainder)
basic operations: 'infix *' (multiplication)
basic operations: 'infix **' (exponentiation)
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
basic operations: 'infix *' (multiplication)
basic operations: 'infix **' (exponentiation)
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
basic operations: 'infix *' (multiplication)
basic operations: 'infix **' (exponentiation)
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
basic operations: 'infix **' (exponentiation)
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
basic operations: 'infix **' (exponentiation)
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
basic operations: 'infix +' (addition)
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
basic operations: 'infix -' (subtraction)
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
basic operations: 'infix /' (division)
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
comparison
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
This provides comparison operators using IEEE semantics.
type.equality and type.lteq should be used for equivalence relations
and total ordering in the mathematical sense.
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
is not a number?
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
is the bit denoting the sign of the number set?
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
this is different from smaller than zero since
there is +0, -0, NaN, etc. in floating point numbers.
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
logarithm with base ℇ
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
logarithm with base `base`
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
the normalized mantissa of this float
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
basic operations: 'prefix +' (identity)
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
preconditions for basic operations: true if the operation's result is
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
representable and defined for the given values
default implementations all return `true` such that children have to
redefine these only for partial operations such as those resulting in
an overflow or that are undefined like a division by zero for most
types.
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
basic operations: 'prefix -' (negation)
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
overflow checking operations
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
saturating operations
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
round floating point number
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
ties to away (0.5 => 1; -0.5 => -1; etc.)
NYI this could be made faster, see here:
https://cs.opensource.google/go/go/+/refs/tags/go1.18.1:src/math/floor.go;l=79
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
sign function resulting in `-1`/`0`/`+1` depending on whether `numeric.this`
is less than, equal or larger than zero
is less than, equal or larger than zero
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
square root alias
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
square root
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
true when the absolute value
is smaller than 0.001
or greater than 9_999_999Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
true when the absolute value
is smaller than 0.001
or greater than 9_999_999
is smaller than 0.001
or greater than 9_999_999
Type Functions
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
result has the form "Type of '<name>'", but this might change in the future
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
number of bytes required to store this value
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
equality
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
This provides an equivalence relation in the mathematical
sense and therefore breaks the IEEE semantics. infix = should
be used for IEEE semantics.
The equivalence relation is provided by the usual comparison
of floating-point numbers, with the definition of NaN = NaN.
number of bits used for exponent
number of bits used for exponent
float is the abstract parent of concrete floating point features such as
f32 or f64.