|
Construct and assign:
|
|
|
|
|
B(rb)
|
B
|
Move constructor. Afterwards variable rb
shall be in sane state, albeit with unspecified value. Only destruction
and assignment to the moved-from variable rb
need be supported after the operation.
|
noexcept
|
|
b =
rb
|
B&
|
Move-assign. Afterwards variable rb
shall be in sane state, albeit with unspecified value. Only destruction
and assignment to the moved-from variable rb
need be supported after the operation.
|
noexcept
|
|
B(a)
|
B
|
Direct construction from an arithmetic type. The type of a shall be listed in one of the
type lists B::signed_types, B::unsigned_types
or B::float_types. When not provided,
this operation is simulated using default-construction followed
by assignment.
|
|
|
B(b2)
|
B
|
Copy constructor from a different back-end type. When not provided,
a generic interconversion routine is used. This constructor may
be explicit if the
corresponding frontend constructor should also be explicit.
|
|
|
b =
b2
|
b&
|
Assignment operator from a different back-end type. When not provided,
a generic interconversion routine is used.
|
|
|
assign_components(b, a, a)
|
void
|
Assigns to b the
two components in the following arguments. Only applies to rational
and complex number types. When not provided, arithmetic operations
are used to synthesise the result from the two values.
|
|
|
assign_components(b, b2, b2)
|
void
|
Assigns to b the
two components in the following arguments. Only applies to rational
and complex number types. When not provided, arithmetic operations
are used to synthesise the result from the two values.
|
|
|
Comparisons:
|
|
|
|
|
eval_eq(cb,
cb2)
|
bool
|
Returns true if cb and cb2
are equal in value. When not provided, the default implementation
returns cb.compare(cb2)
== 0.
|
noexcept
|
|
eval_eq(cb,
a)
|
bool
|
Returns true if cb and a
are equal in value. The type of a
shall be listed in one of the type lists B::signed_types,
B::unsigned_types or B::float_types. When not provided,
return the equivalent of eval_eq(cb, B(a)).
|
|
|
eval_eq(a,
cb)
|
bool
|
Returns true if cb and a
are equal in value. The type of a
shall be listed in one of the type lists B::signed_types,
B::unsigned_types or B::float_types. When not provided,
the default version returns eval_eq(cb, a).
|
|
|
eval_lt(cb,
cb2)
|
bool
|
Returns true if cb is less than cb2 in value. When not provided,
the default implementation returns cb.compare(cb2) <
0.
|
noexcept
|
|
eval_lt(cb,
a)
|
bool
|
Returns true if cb is less than a in value. The type of a shall be listed in one of the
type lists B::signed_types, B::unsigned_types
or B::float_types. When not provided,
the default implementation returns eval_lt(cb, B(a)).
|
|
|
eval_lt(a,
cb)
|
bool
|
Returns true if a is less than cb in value. The type of a shall be listed in one of the
type lists B::signed_types, B::unsigned_types
or B::float_types. When not provided,
the default implementation returns eval_gt(cb, a).
|
|
|
eval_gt(cb,
cb2)
|
bool
|
Returns true if cb is greater than cb2 in value. When not provided,
the default implementation returns cb.compare(cb2) >
0.
|
noexcept
|
|
eval_gt(cb,
a)
|
bool
|
Returns true if cb is greater than a in value. The type of a shall be listed in one of the
type lists B::signed_types, B::unsigned_types
or B::float_types. When not provided,
the default implementation returns eval_gt(cb, B(a)).
|
|
|
eval_gt(a,
cb)
|
bool
|
Returns true if a is greater than cb in value. The type of a shall be listed in one of the
type lists B::signed_types, B::unsigned_types
or B::float_types. When not provided,
the default implementation returns eval_lt(cb, a).
|
|
|
eval_is_zero(cb)
|
bool
|
Returns true if cb is zero, otherwise false. The default version of this
function returns cb.compare(ui_type(0)) ==
0, where ui_type
is ui_type is
typename mpl::front<typename
B::unsigned_types>::type.
|
|
|
eval_get_sign(cb)
|
int
|
Returns a value < zero if cb
is negative, a value > zero if cb
is positive, and zero if cb
is zero. The default version of this function returns cb.compare(ui_type(0)),
where ui_type is
ui_type is typename mpl::front<typename
B::unsigned_types>::type.
|
|
|
Basic arithmetic:
|
|
|
|
|
eval_add(b,
a)
|
void
|
Adds a to b. The type of a shall be listed in one of the
type lists B::signed_types, B::unsigned_types
or B::float_types. When not provided,
the default version calls eval_add(b, B(a))
|
|
|
eval_add(b,
cb,
cb2)
|
void
|
Add cb to cb2 and stores the result in
b. When not provided,
does the equivalent of b
= cb; eval_add(b, cb2).
|
|
|
eval_add(b,
cb,
a)
|
void
|
Add cb to a and stores the result in b. The type of a shall be listed in one of the
type lists B::signed_types, B::unsigned_types
or B::float_types. When not provided,
does the equivalent of eval_add(b, cb, B(a)).
|
|
|
eval_add(b,
a,
cb)
|
void
|
Add a to cb and stores the result in
b. The type of
a shall be listed
in one of the type lists B::signed_types,
B::unsigned_types or B::float_types. When not provided,
does the equivalent of eval_add(b, cb, a).
|
|
|
eval_subtract(b,
a)
|
void
|
Subtracts a from
b. The type of
a shall be listed
in one of the type lists B::signed_types,
B::unsigned_types or B::float_types. When not provided,
the default version calls eval_subtract(b, B(a))
|
|
|
eval_subtract(b,
cb,
cb2)
|
void
|
Subtracts cb2 from
cb and stores the
result in b. When
not provided, does the equivalent of b
= cb; eval_subtract(b, cb2).
|
|
|
eval_subtract(b,
cb,
a)
|
void
|
Subtracts a from
cb and stores the
result in b. The
type of a shall
be listed in one of the type lists B::signed_types,
B::unsigned_types or B::float_types. When not provided,
does the equivalent of eval_subtract(b, cb, B(a)).
|
|
|
eval_subtract(b,
a,
cb)
|
void
|
Subtracts cb from
a and stores the
result in b. The
type of a shall
be listed in one of the type lists B::signed_types,
B::unsigned_types or B::float_types. When not provided,
does the equivalent of eval_subtract(b, cb, a); b.negate();.
|
|
|
eval_multiply(b,
a)
|
void
|
Multiplies b by
a. The type of
a shall be listed
in one of the type lists B::signed_types,
B::unsigned_types or B::float_types. When not provided,
the default version calls eval_multiply(b, B(a))
|
|
|
eval_multiply(b,
cb,
cb2)
|
void
|
Multiplies cb by
cb2 and stores
the result in b.
When not provided, does the equivalent of b
= cb; eval_multiply(b, cb2).
|
|
|
eval_multiply(b,
cb,
a)
|
void
|
Multiplies cb by
a and stores the
result in b. The
type of a shall
be listed in one of the type lists B::signed_types,
B::unsigned_types or B::float_types. When not provided,
does the equivalent of eval_multiply(b, cb, B(a)).
|
|
|
eval_multiply(b,
a,
cb)
|
void
|
Multiplies a by
cb and stores the
result in b. The
type of a shall
be listed in one of the type lists B::signed_types,
B::unsigned_types or B::float_types. When not provided,
does the equivalent of eval_multiply(b, cb, a).
|
|
|
eval_multiply_add(b, cb, cb2)
|
void
|
Multiplies cb by
cb2 and adds the
result to b. When
not provided does the equivalent of creating a temporary B t
and eval_multiply(t, cb, cb2) followed by eval_add(b, t).
|
|
|
eval_multiply_add(b, cb, a)
|
void
|
Multiplies a by
cb and adds the
result to b. The
type of a shall
be listed in one of the type lists B::signed_types,
B::unsigned_types or B::float_types. When not provided
does the equivalent of creating a temporary B
t and eval_multiply(t, cb, a) followed by eval_add(b, t).
|
|
|
eval_multiply_add(b, a, cb)
|
void
|
Multiplies a by
cb and adds the
result to b. The
type of a shall
be listed in one of the type lists B::signed_types,
B::unsigned_types or B::float_types. When not provided
does the equivalent of eval_multiply_add(b, cb, a).
|
|
|
eval_multiply_subtract(b, cb, cb2)
|
void
|
Multiplies cb by
cb2 and subtracts
the result from b.
When not provided does the equivalent of creating a temporary
B t
and eval_multiply(t, cb, cb2) followed by eval_subtract(b, t).
|
|
|
eval_multiply_subtract(b, cb, a)
|
void
|
Multiplies a by
cb and subtracts
the result from b.
The type of a shall
be listed in one of the type lists B::signed_types,
B::unsigned_types or B::float_types. When not provided
does the equivalent of creating a temporary B
t and eval_multiply(t, cb, a) followed by eval_subtract(b, t).
|
|
|
eval_multiply_subtract(b, a, cb)
|
void
|
Multiplies a by
cb and subtracts
the result from b.
The type of a shall
be listed in one of the type lists B::signed_types,
B::unsigned_types or B::float_types. When not provided
does the equivalent of eval_multiply_subtract(b, cb, a).
|
|
|
eval_multiply_add(b, cb, cb2, cb3)
|
void
|
Multiplies cb by
cb2 and adds the
result to cb3 storing
the result in b.
When not provided does the equivalent of eval_multiply(b, cb, cb2) followed by eval_add(b, cb3). For brevity, only a version showing
all arguments of type B
is shown here, but you can replace up to any 2 of cb, cb2
and cb3 with any
type listed in one of the type lists B::signed_types,
B::unsigned_types or B::float_types.
|
|
|
eval_multiply_subtract(b, cb, cb2, cb3)
|
void
|
Multiplies cb by
cb2 and subtracts
from the result cb3
storing the result in b.
When not provided does the equivalent of eval_multiply(b, cb, cb2) followed by eval_subtract(b, cb3). For brevity, only a version showing
all arguments of type B
is shown here, but you can replace up to any 2 of cb, cb2
and cb3 with any
type listed in one of the type lists B::signed_types,
B::unsigned_types or B::float_types.
|
|
|
eval_divide(b,
a)
|
void
|
Divides b by a. The type of a shall be listed in one of the
type lists B::signed_types, B::unsigned_types
or B::float_types. When not provided,
the default version calls eval_divide(b, B(a))
|
std::overflow_error if a has the value zero, and std::numeric_limits<number<B>
>::has_infinity
== false
|
|
eval_divide(b,
cb,
cb2)
|
void
|
Divides cb by
cb2 and stores
the result in b.
When not provided, does the equivalent of b
= cb; eval_divide(b, cb2).
|
std::overflow_error if cb2 has the value zero, and
std::numeric_limits<number<B>
>::has_infinity
== false
|
|
eval_divide(b,
cb,
a)
|
void
|
Divides cb by
a and stores the
result in b. The
type of a shall
be listed in one of the type lists B::signed_types,
B::unsigned_types or B::float_types. When not provided,
does the equivalent of eval_divide(b, cb, B(a)).
|
std::overflow_error if a has the value zero, and std::numeric_limits<number<B>
>::has_infinity
== false
|
|
eval_divide(b,
a,
cb)
|
void
|
Divides a by cb and stores the result in
b. The type of
a shall be listed
in one of the type lists B::signed_types,
B::unsigned_types or B::float_types. When not provided,
does the equivalent of eval_divide(b, B(a), cb).
|
std::overflow_error if cb has the
value zero, and std::numeric_limits<number<B> >::has_infinity ==
false
|
|
eval_increment(b)
|
void
|
Increments the value of b
by one. When not provided, does the equivalent of eval_add(b,
static_cast<ui_type>(1u)).
Where ui_type is
typename mpl::front<typename
B::unsigned_types>::type.
|
|
|
eval_decrement(b)
|
void
|
Decrements the value of b
by one. When not provided, does the equivalent of eval_subtract(b,
static_cast<ui_type>(1u)).
Where ui_type is
typename mpl::front<typename
B::unsigned_types>::type.
|
|
|
Integer specific operations:
|
|
|
|
|
eval_modulus(b,
a)
|
void
|
Computes b %=
cb, only required when
B is an integer
type. The type of a
shall be listed in one of the type lists B::signed_types,
B::unsigned_types or B::float_types. When not provided,
the default version calls eval_modulus(b, B(a))
|
std::overflow_error if a has the value zero.
|
|
eval_modulus(b,
cb,
cb2)
|
void
|
Computes cb %
cb2 and stores the result
in b, only required
when B is an integer
type. When not provided, does the equivalent of b
= cb; eval_modulus(b, cb2).
|
std::overflow_error if a has the value zero.
|
|
eval_modulus(b,
cb,
a)
|
void
|
Computes cb %
a and stores the result
in b, only required
when B is an integer
type. The type of a
shall be listed in one of the type lists B::signed_types,
B::unsigned_types or B::float_types. When not provided,
does the equivalent of eval_modulus(b, cb, B(a)).
|
std::overflow_error if a has the value zero.
|
|
eval_modulus(b,
a,
cb)
|
void
|
Computes cb %
a and stores the result
in b, only required
when B is an integer
type. The type of a
shall be listed in one of the type lists B::signed_types,
B::unsigned_types or B::float_types. When not provided,
does the equivalent of eval_modulus(b, B(a), cb).
|
std::overflow_error if a has the value zero.
|
|
eval_bitwise_and(b, a)
|
void
|
Computes b &=
cb, only required when
B is an integer
type. The type of a
shall be listed in one of the type lists B::signed_types,
B::unsigned_types or B::float_types. When not provided,
the default version calls eval_bitwise_and(b, B(a))
|
|
|
eval_bitwise_and(b, cb, cb2)
|
void
|
Computes cb &
cb2 and stores the result
in b, only required
when B is an integer
type. When not provided, does the equivalent of b
= cb; eval_bitwise_and(b, cb2).
|
|
|
eval_bitwise_and(b, cb, a)
|
void
|
Computes cb &
a and stores the result
in b, only required
when B is an integer
type. The type of a
shall be listed in one of the type lists B::signed_types,
B::unsigned_types or B::float_types. When not provided,
does the equivalent of eval_bitwise_and(b, cb, B(a)).
|
|
|
eval_bitwise_and(b, a, cb)
|
void
|
Computes cb &
a and stores the result
in b, only required
when B is an integer
type. The type of a
shall be listed in one of the type lists B::signed_types,
B::unsigned_types or B::float_types. When not provided,
does the equivalent of eval_bitwise_and(b, cb, a).
|
|
|
eval_bitwise_or(b, a)
|
void
|
Computes b |=
cb, only required when
B is an integer
type. The type of a
shall be listed in one of the type lists B::signed_types,
B::unsigned_types or B::float_types. When not provided,
the default version calls eval_bitwise_or(b, B(a))
|
|
|
eval_bitwise_or(b, cb, cb2)
|
void
|
Computes cb |
cb2 and stores the result
in b, only required
when B is an integer
type. When not provided, does the equivalent of b
= cb; eval_bitwise_or(b, cb2).
|
|
|
eval_bitwise_or(b, cb, a)
|
void
|
Computes cb |
a and stores the result
in b, only required
when B is an integer
type. The type of a
shall be listed in one of the type lists B::signed_types,
B::unsigned_types or B::float_types. When not provided,
does the equivalent of eval_bitwise_or(b, cb, B(a)).
|
|
|
eval_bitwise_or(b, a, cb)
|
void
|
Computes cb |
a and stores the result
in b, only required
when B is an integer
type. The type of a
shall be listed in one of the type lists B::signed_types,
B::unsigned_types or B::float_types. When not provided,
does the equivalent of eval_bitwise_or(b, cb, a).
|
|
|
eval_bitwise_xor(b, a)
|
void
|
Computes b ^=
cb, only required when
B is an integer
type. The type of a
shall be listed in one of the type lists B::signed_types,
B::unsigned_types or B::float_types. When not provided,
the default version calls eval_bitwise_xor(b, B(a))
|
|
|
eval_bitwise_xor(b, cb, cb2)
|
void
|
Computes cb ^
cb2 and stores the result
in b, only required
when B is an integer
type. When not provided, does the equivalent of b
= cb; eval_bitwise_xor(b, cb2).
|
|
|
eval_bitwise_xor(b, cb, a)
|
void
|
Computes cb ^
a and stores the result
in b, only required
when B is an integer
type. The type of a
shall be listed in one of the type lists B::signed_types,
B::unsigned_types or B::float_types. When not provided,
does the equivalent of eval_bitwise_xor(b, cb, B(a)).
|
|
|
eval_bitwise_xor(b, a, cb)
|
void
|
Computes a ^
cb and stores the result
in b, only required
when B is an integer
type. The type of a
shall be listed in one of the type lists B::signed_types,
B::unsigned_types or B::float_types. When not provided,
does the equivalent of eval_bitwise_xor(b, cb, a).
|
|
|
eval_left_shift(b, cb, ui)
|
void
|
Computes cb <<
ui and stores the result
in b, only required
when B is an integer
type. When not provided, does the equivalent of b
= cb; eval_left_shift(b, a);.
|
|
|
eval_right_shift(b, cb, ui)
|
void
|
Computes cb >>
ui and stores the result
in b, only required
when B is an integer
type. When not provided, does the equivalent of b
= cb; eval_right_shift(b, a);.
|
|
|
eval_qr(cb,
cb2,
b,
b2)
|
void
|
Sets b to the result
of cb /
cb2 and b2 to the result of cb %
cb2. Only required when
B is an integer
type. The default version of this function is synthesised from
other operations above.
|
std::overflow_error if a has the value zero.
|
|
eval_integer_modulus(cb, ui)
|
unsigned
|
Returns the result of cb
% ui.
Only required when B
is an integer type. The default version of this function is synthesised
from other operations above.
|
std::overflow_error if a has the value zero.
|
|
eval_lsb(cb)
|
unsigned
|
Returns the index of the least significant bit that is set. Only
required when B
is an integer type. The default version of this function is synthesised
from other operations above.
|
|
|
eval_bit_test(cb,
ui)
|
bool
|
Returns true if cb
has bit ui set.
Only required when B
is an integer type. The default version of this function is synthesised
from other operations above.
|
|
|
eval_bit_set(b,
ui)
|
void
|
Sets the bit at index ui
in b. Only required
when B is an integer
type. The default version of this function is synthesised from
other operations above.
|
|
|
eval_bit_unset(b, ui)
|
void
|
Unsets the bit at index ui
in b. Only required
when B is an integer
type. The default version of this function is synthesised from
other operations above.
|
|
|
eval_bit_flip(b,
ui)
|
void
|
Flips the bit at index ui
in b. Only required
when B is an integer
type. The default version of this function is synthesised from
other operations above.
|
|
|
eval_gcd(b,
cb,
cb2)
|
void
|
Sets b to the greatest
common divisor of cb
and cb2. Only required
when B is an integer
type. The default version of this function is synthesised from
other operations above.
|
|
|
eval_lcm(b,
cb,
cb2)
|
void
|
Sets b to the least
common multiple of cb
and cb2. Only required
when B is an integer
type. The default version of this function is synthesised from
other operations above.
|
|
|
eval_gcd(b,
cb,
a)
|
void
|
Sets b to the greatest
common divisor of cb
and cb2. Only required
when B is an integer
type. The type of a
shall be listed in one of the type lists B::signed_types,
B::unsigned_types or B::float_types. The default version
of this function calls eval_gcd(b, cb, B(a)).
|
|
|
eval_lcm(b,
cb,
a)
|
void
|
Sets b to the least
common multiple of cb
and cb2. Only required
when B is an integer
type. The type of a
shall be listed in one of the type lists B::signed_types,
B::unsigned_types or B::float_types. The default version
of this function calls eval_lcm(b, cb, B(a)).
|
|
|
eval_gcd(b,
a,
cb)
|
void
|
Sets b to the greatest
common divisor of cb
and a. Only required
when B is an integer
type. The type of a
shall be listed in one of the type lists B::signed_types,
B::unsigned_types or B::float_types. The default version
of this function calls eval_gcd(b, cb, a).
|
|
|
eval_lcm(b,
a,
cb)
|
void
|
Sets b to the least
common multiple of cb
and a. Only required
when B is an integer
type. The type of a
shall be listed in one of the type lists B::signed_types,
B::unsigned_types or B::float_types. The default version
of this function calls eval_lcm(b, cb, a).
|
|
|
eval_powm(b,
cb,
cb2,
cb3)
|
void
|
Sets b to the result
of (cb^cb2)%cb3. The default version of this
function is synthesised from other operations above.
|
|
|
eval_powm(b,
cb,
cb2,
a)
|
void
|
Sets b to the result
of (cb^cb2)%a. The type of a
shall be listed in one of the type lists B::signed_types,
B::unsigned_types. The default version
of this function is synthesised from other operations above.
|
|
|
eval_powm(b,
cb,
a,
cb2)
|
void
|
Sets b to the result
of (cb^a)%cb2. The type of a
shall be listed in one of the type lists B::signed_types,
B::unsigned_types. The default version
of this function is synthesised from other operations above.
|
|
|
eval_powm(b,
cb,
a,
a2)
|
void
|
Sets b to the result
of (cb^a)%a2. The type of a
shall be listed in one of the type lists B::signed_types,
B::unsigned_types. The default version
of this function is synthesised from other operations above.
|
|
|
Sign manipulation:
|
|
|
|
|
eval_abs(b,
cb)
|
void
|
Set b to the absolute
value of cb. The
default version of this functions assigns cb
to b, and then
calls b.negate()
if eval_get_sign(cb) <
0.
|
|
|
eval_fabs(b,
cb)
|
void
|
Set b to the absolute
value of cb. The
default version of this functions assigns cb
to b, and then
calls b.negate()
if eval_get_sign(cb) <
0.
|
|
|
Floating point functions:
|
|
|
|
|
eval_fpclassify(cb)
|
int
|
Returns one of the same values returned by std::fpclassify.
Only required when B
is an floating-point type. The default version of this function
will only test for zero cb.
|
|
|
eval_trunc(b,
cb)
|
void
|
Performs the equivalent operation to std::trunc
on argument cb
and stores the result in b.
Only required when B
is an floating-point type. The default version of this function
is synthesised from other operations above.
|
|
|
eval_round(b,
cb)
|
void
|
Performs the equivalent operation to std::round
on argument cb
and stores the result in b.
Only required when B
is an floating-point type. The default version of this function
is synthesised from other operations above.
|
|
|
eval_exp(b,
cb)
|
void
|
Performs the equivalent operation to std::exp
on argument cb
and stores the result in b.
Only required when B
is an floating-point type. The default version of this function
is synthesised from other operations above.
|
|
|
eval_log(b,
cb)
|
void
|
Performs the equivalent operation to std::log
on argument cb
and stores the result in b.
Only required when B
is an floating-point type. The default version of this function
is synthesised from other operations above.
|
|
|
eval_log10(b,
cb)
|
void
|
Performs the equivalent operation to std::log10
on argument cb
and stores the result in b.
Only required when B
is an floating-point type. The default version of this function
is synthesised from other operations above.
|
|
|
eval_sin(b,
cb)
|
void
|
Performs the equivalent operation to std::sin
on argument cb
and stores the result in b.
Only required when B
is an floating-point type. The default version of this function
is synthesised from other operations above.
|
|
|
eval_cos(b,
cb)
|
void
|
Performs the equivalent operation to std::cos
on argument cb
and stores the result in b.
Only required when B
is an floating-point type. The default version of this function
is synthesised from other operations above.
|
|
|
eval_tan(b,
cb)
|
void
|
Performs the equivalent operation to std::exp
on argument cb
and stores the result in b.
Only required when B
is an floating-point type. The default version of this function
is synthesised from other operations above.
|
|
|
eval_asin(b,
cb)
|
void
|
Performs the equivalent operation to std::asin
on argument cb
and stores the result in b.
Only required when B
is an floating-point type. The default version of this function
is synthesised from other operations above.
|
|
|
eval_acos(b,
cb)
|
void
|
Performs the equivalent operation to std::acos
on argument cb
and stores the result in b.
Only required when B
is an floating-point type. The default version of this function
is synthesised from other operations above.
|
|
|
eval_atan(b,
cb)
|
void
|
Performs the equivalent operation to std::atan
on argument cb
and stores the result in b.
Only required when B
is an floating-point type. The default version of this function
is synthesised from other operations above.
|
|
|
eval_sinh(b,
cb)
|
void
|
Performs the equivalent operation to std::sinh
on argument cb
and stores the result in b.
Only required when B
is an floating-point type. The default version of this function
is synthesised from other operations above.
|
|
|
eval_cosh(b,
cb)
|
void
|
Performs the equivalent operation to std::cosh
on argument cb
and stores the result in b.
Only required when B
is an floating-point type. The default version of this function
is synthesised from other operations above.
|
|
|
eval_tanh(b,
cb)
|
void
|
Performs the equivalent operation to std::tanh
on argument cb
and stores the result in b.
Only required when B
is an floating-point type. The default version of this function
is synthesised from other operations above.
|
|
|
eval_fmod(b,
cb,
cb2)
|
void
|
Performs the equivalent operation to std::fmod
on arguments cb
and cb2, and store
the result in b.
Only required when B
is an floating-point type. The default version of this function
is synthesised from other operations above.
|
|
|
eval_pow(b,
cb,
cb2)
|
void
|
Performs the equivalent operation to std::pow
on arguments cb
and cb2, and store
the result in b.
Only required when B
is an floating-point type. The default version of this function
is synthesised from other operations above.
|
|
|
eval_atan2(b,
cb,
cb2)
|
void
|
Performs the equivalent operation to std::atan
on arguments cb
and cb2, and store
the result in b.
Only required when B
is an floating-point type. The default version of this function
is synthesised from other operations above.
|
|