piranha
0.10
|
Real trigonometric Kronecker monomial class. More...
#include <piranha/real_trigonometric_kronecker_monomial.hpp>
Public Types | |
typedef T | value_type |
Alias for T . | |
typedef ka::size_type | size_type |
Size type. More... | |
typedef static_vector< value_type, max_size > | v_type |
Vector type used for temporary packing/unpacking. | |
Public Member Functions | |
real_trigonometric_kronecker_monomial () | |
Default constructor. More... | |
real_trigonometric_kronecker_monomial (const real_trigonometric_kronecker_monomial &)=default | |
Defaulted copy constructor. | |
real_trigonometric_kronecker_monomial (real_trigonometric_kronecker_monomial &&)=default | |
Defaulted move constructor. | |
template<typename U , init_list_enabler< U > = 0> | |
real_trigonometric_kronecker_monomial (std::initializer_list< U > list, bool flavour=true) | |
Constructor from initalizer list. More... | |
template<typename Iterator , it_ctor_enabler< Iterator > = 0> | |
real_trigonometric_kronecker_monomial (const Iterator &start, const Iterator &end, bool flavour=true) | |
Constructor from range. More... | |
real_trigonometric_kronecker_monomial (const symbol_fset &) | |
Constructor from set of symbols. More... | |
real_trigonometric_kronecker_monomial (const value_type &n, bool f) | |
Constructor from value_type and flavour. More... | |
real_trigonometric_kronecker_monomial (const real_trigonometric_kronecker_monomial &other, const symbol_fset &) | |
Converting constructor. More... | |
~real_trigonometric_kronecker_monomial () | |
Trivial destructor. | |
real_trigonometric_kronecker_monomial & | operator= (const real_trigonometric_kronecker_monomial &other)=default |
Copy assignment operator. More... | |
real_trigonometric_kronecker_monomial & | operator= (real_trigonometric_kronecker_monomial &&other)=default |
Move assignment operator. More... | |
void | set_int (const value_type &n) |
Set the internal integer instance. More... | |
value_type | get_int () const |
Get internal instance. More... | |
bool | get_flavour () const |
Get flavour. More... | |
void | set_flavour (bool f) |
Set flavour. More... | |
bool | canonicalise (const symbol_fset &args) |
Canonicalise. More... | |
bool | is_compatible (const symbol_fset &args) const noexcept |
Compatibility check. More... | |
bool | is_zero (const symbol_fset &) const noexcept |
Zero check. More... | |
real_trigonometric_kronecker_monomial | merge_symbols (const symbol_idx_fmap< symbol_fset > &ins_map, const symbol_fset &args) const |
Merge symbols. More... | |
bool | is_unitary (const symbol_fset &) const |
Check if monomial is unitary. More... | |
degree_type | t_degree (const symbol_fset &args) const |
Trigonometric degree. More... | |
degree_type | t_ldegree (const symbol_fset &args) const |
Low trigonometric degree (equivalent to the trigonometric degree). More... | |
degree_type | t_degree (const symbol_idx_fset &p, const symbol_fset &args) const |
Partial trigonometric degree. More... | |
degree_type | t_ldegree (const symbol_idx_fset &p, const symbol_fset &args) const |
Partial low trigonometric degree (equivalent to the partial trigonometric degree). More... | |
order_type | t_order (const symbol_fset &args) const |
Trigonometric order. More... | |
order_type | t_lorder (const symbol_fset &args) const |
Low trigonometric order (equivalent to the trigonometric order). More... | |
order_type | t_order (const symbol_idx_fset &p, const symbol_fset &args) const |
Partial trigonometric order. More... | |
order_type | t_lorder (const symbol_idx_fset &p, const symbol_fset &args) const |
Partial low trigonometric order (equivalent to the partial trigonometric order). More... | |
std::size_t | hash () const |
Hash value. More... | |
bool | operator== (const real_trigonometric_kronecker_monomial &other) const |
Equality operator. More... | |
bool | operator!= (const real_trigonometric_kronecker_monomial &other) const |
Inequality operator. More... | |
v_type | unpack (const symbol_fset &args) const |
Unpack internal integer instance. More... | |
void | print (std::ostream &os, const symbol_fset &args) const |
Print. More... | |
void | print_tex (std::ostream &os, const symbol_fset &args) const |
Print in TeX mode. More... | |
std::pair< T, real_trigonometric_kronecker_monomial > | partial (const symbol_idx &p, const symbol_fset &args) const |
Partial derivative. More... | |
std::pair< T, real_trigonometric_kronecker_monomial > | integrate (const std::string &s, const symbol_fset &args) const |
Integration. More... | |
template<typename U > | |
eval_type< U > | evaluate (const std::vector< U > &values, const symbol_fset &args) const |
Evaluation. More... | |
template<typename U > | |
std::vector< std::pair< subs_type< U >, real_trigonometric_kronecker_monomial > > | subs (const symbol_idx_fmap< U > &smap, const symbol_fset &args) const |
Substitution. More... | |
template<typename U > | |
std::vector< std::pair< t_subs_type< U >, real_trigonometric_kronecker_monomial > > | t_subs (const symbol_idx &idx, const U &c, const U &s, const symbol_fset &args) const |
Trigonometric substitution. More... | |
void | trim_identify (std::vector< char > &trim_mask, const symbol_fset &args) const |
Identify symbols that can be trimmed. More... | |
real_trigonometric_kronecker_monomial | trim (const std::vector< char > &trim_mask, const symbol_fset &args) const |
Trim. More... | |
bool | operator< (const real_trigonometric_kronecker_monomial &other) const |
Comparison operator. More... | |
template<typename Stream , msgpack_pack_enabler< Stream > = 0> | |
void | msgpack_pack (msgpack::packer< Stream > &packer, msgpack_format f, const symbol_fset &s) const |
Serialize in msgpack format. More... | |
template<typename U = real_trigonometric_kronecker_monomial, msgpack_convert_enabler< U > = 0> | |
void | msgpack_convert (const msgpack::object &o, msgpack_format f, const symbol_fset &s) |
Deserialize from msgpack object. More... | |
Static Public Member Functions | |
template<typename Cf , multiply_enabler< Cf > = 0> | |
static void | multiply (std::array< term< Cf, real_trigonometric_kronecker_monomial >, multiply_arity > &res, const term< Cf, real_trigonometric_kronecker_monomial > &t1, const term< Cf, real_trigonometric_kronecker_monomial > &t2, const symbol_fset &args) |
Multiply terms with a trigonometric monomial. More... | |
Static Public Attributes | |
static const std::size_t | multiply_arity = 2u |
Arity of the multiply() method. | |
static const size_type | max_size = 255u |
Maximum monomial size. | |
Real trigonometric Kronecker monomial class.
This class represents a multivariate real trigonometric monomial, i.e., functions of the form
\[ \begin{array}{c} \sin \\ \cos \end{array} \left(n_0x_0 + n_1x_1 + \ldots + n_mx_m\right), \]
where the integers \( n_i \) are called multipliers. The values of the multipliers are packed in a signed integer using Kronecker substitution, using the facilities provided by piranha::kronecker_array. The boolean flavour of the monomial indicates whether it represents a cosine (true
) or sine (false
).
Similarly to an ordinary monomial, this class provides methods to query the trigonometric (partial) (low) degree, defined as if the multipliers were exponents of a regular monomial (e.g., the total trigonometric degree is the sum of the multipliers). Closely related is the concept of trigonometric order, calculated by adding the absolute values of the multipliers.
This class satisfies the piranha::is_key, piranha::key_has_t_degree, piranha::key_has_t_ldegree, piranha::key_has_t_order, piranha::key_has_t_lorder and piranha::key_is_differentiable type traits.
T
must be suitable for use in piranha::kronecker_array. The default type for T
is the signed counterpart of std::size_t
.
Unless otherwise specified, this class provides the strong exception safety guarantee for all operations.
The move semantics of this class are equivalent to the move semantics of C++ signed integral types.
Definition at line 119 of file real_trigonometric_kronecker_monomial.hpp.
typedef ka::size_type piranha::real_trigonometric_kronecker_monomial< T >::size_type |
Size type.
Used to represent the number of variables in the monomial. Equivalent to the size type of piranha::kronecker_array.
Definition at line 136 of file real_trigonometric_kronecker_monomial.hpp.
|
inline |
Default constructor.
After construction all multipliers in the monomial will be zero, and the flavour will be set to true
.
Definition at line 150 of file real_trigonometric_kronecker_monomial.hpp.
|
inlineexplicit |
Constructor from initalizer list.
U
is safely convertible to T
.The values in the initializer list are intended to represent the multipliers of the monomial: they will be safely converted to type T
(if T
and U
are not the same type), encoded using piranha::kronecker_array::encode() and the result assigned to the internal integer instance. The flavour will be set to flavour
.
list | an initializer list representing the multipliers. |
flavour | the flavour that will be assigned to the monomial. |
unspecified | any exception thrown by: |
Definition at line 181 of file real_trigonometric_kronecker_monomial.hpp.
|
inlineexplicit |
Constructor from range.
Iterator
is an input iterator whose value_type
is safely convertible to T
.Will build internally a vector of values from the input iterators, encode it and assign the result to the internal integer instance. The value type of the iterator is converted to T
using piranha::safe_cast(). The flavour will be set to flavour
.
start | beginning of the range. |
end | end of the range. |
flavour | the flavour that will be assigned to the monomial. |
unspecified | any exception thrown by: |
Definition at line 215 of file real_trigonometric_kronecker_monomial.hpp.
|
inlineexplicit |
Constructor from set of symbols.
After construction all multipliers will be zero and the flavour will be set to true
.
Definition at line 228 of file real_trigonometric_kronecker_monomial.hpp.
|
inlineexplicit |
Constructor from value_type
and flavour.
This constructor will initialise the internal integer instance to n
and the flavour to f
.
n | initializer for the internal integer instance. |
f | desired flavour. |
Definition at line 237 of file real_trigonometric_kronecker_monomial.hpp.
|
inlineexplicit |
Converting constructor.
This constructor is for use when converting from one term type to another in piranha::series. It will set the internal integer instance and flavour to the same value of other
.
other | the construction argument. |
Definition at line 245 of file real_trigonometric_kronecker_monomial.hpp.
|
inline |
Canonicalise.
A monomial is considered to be in canonical form when the first nonzero multiplier is positive. If this
is not in canonical form, the method will canonicalise this
by switching the signs of all multipliers and return true
. Otherwise, this
will not be modified and false
will be returned.
args | the reference piranha::symbol_fset. |
true
if the monomial was canonicalised, false
otherwise.unspecified | any exception thrown by: |
Definition at line 340 of file real_trigonometric_kronecker_monomial.hpp.
|
inline |
Evaluation.
U
supports the mathematical operations needed to compute the return type.The return value will be built by applying piranha::math::cos() or piranha::math:sin() to the linear combination of the values in values
with the multipliers.
values | the values will be used for the evaluation. |
args | the reference piranha::symbol_fset. |
this
with the values provided in values
.std::invalid_argument | if the sizes of values and args differ. |
unspecified | any exception thrown by unpack() or by the computation of the return type. |
Definition at line 966 of file real_trigonometric_kronecker_monomial.hpp.
|
inline |
Get flavour.
Definition at line 294 of file real_trigonometric_kronecker_monomial.hpp.
|
inline |
Get internal instance.
Definition at line 286 of file real_trigonometric_kronecker_monomial.hpp.
|
inline |
Hash value.
std::size_t
. Definition at line 720 of file real_trigonometric_kronecker_monomial.hpp.
|
inline |
Integration.
This method will return the antiderivative of this
with respect to the symbol s
. The result is a pair consisting of the multiplier associated to s
and a copy of the monomial. The sign of the multiplier and the flavour of the resulting monomial are set according to the standard integration formulas for elementary trigonometric functions. If s
is not in args
or if the multiplier associated to it is zero, the returned pair will be (0,real_trigonometric_kronecker_monomial{args})
.
s | the symbol with respect to which the integration will be calculated. |
args | the reference piranha::symbol_fset. |
unspecified | any exception thrown by unpack(). |
Definition at line 900 of file real_trigonometric_kronecker_monomial.hpp.
|
inlinenoexcept |
Compatibility check.
A monomial is considered incompatible if any of these conditions holds:
args
is zero and the internal integer is not zero,args
is equal to or larger than the size of the output of piranha::kronecker_array::get_limits(),Otherwise, the monomial is considered to be compatible for insertion.
args | the reference piranha::symbol_fset. |
Definition at line 365 of file real_trigonometric_kronecker_monomial.hpp.
|
inline |
Check if monomial is unitary.
true
if all the multipliers are zero and the flavour is true
, false
otherwise. Definition at line 444 of file real_trigonometric_kronecker_monomial.hpp.
|
inlinenoexcept |
Zero check.
A trigonometric monomial is zero if all multipliers are zero and the flavour is false
.
Definition at line 403 of file real_trigonometric_kronecker_monomial.hpp.
|
inline |
Merge symbols.
This method will return a copy of this
in which the value 0 has been inserted at the positions specified by ins_map
. Specifically, before each index appearing in ins_map
a number of zeroes equal to the size of the mapped piranha::symbol_fset will be inserted.
For instance, given a piranha::real_trigonometric_kronecker_monomial containing the values [1,2,3,4]
, a symbol set args
containing ["c","e","g","h"]
and an insertion map ins_map
containing the pairs [(0,["a","b"]),(1,["d"]),(2,["f"]),(4,["i"])]
, the output of this method will be [0,0,1,0,2,0,3,4,0]
. That is, the symbols appearing in ins_map
are merged into this
with a value of zero at the specified positions. The original flavour of this
will be preserved in the return value.
ins_map | the insertion map. |
args | the reference symbol set for this . |
this
zeroes at the positions specified by ins_map
.std::invalid_argument | in the following cases:
|
unspecified | any exception thrown by: |
Definition at line 434 of file real_trigonometric_kronecker_monomial.hpp.
|
inline |
Deserialize from msgpack object.
T
, bool
and piranha::real_trigonometric_kronecker_monomial::v_type satisfy piranha::has_msgpack_convert.This method will deserialize o
into this
. In binary mode, no check is performed on the content of o
, and calling this method will result in undefined behaviour if o
does not contain a monomial serialized via msgpack_pack(). This method provides the basic exception safety guarantee.
o | msgpack object that will be deserialized. |
f | serialization format. |
s | the reference piranha::symbol_fset. |
std::invalid_argument | if the size of the deserialized array differs from the size of s . |
unspecified | any exception thrown by:
|
Definition at line 1372 of file real_trigonometric_kronecker_monomial.hpp.
|
inline |
Serialize in msgpack format.
Stream
satisfies piranha::is_msgpack_stream and T
, bool
and piranha::real_trigonometric_kronecker_monomial::v_type satisfy piranha::has_msgpack_pack.This method will pack this
into packer
.
packer | the target packer. |
f | the serialization format. |
s | the reference piranha::symbol_fset. |
unspecified | any exception thrown by:
|
Definition at line 1339 of file real_trigonometric_kronecker_monomial.hpp.
|
inlinestatic |
Multiply terms with a trigonometric monomial.
Cf
satisfies piranha::has_mul3,Cf
is divisible in-place by int
,Cf
is copy-assignable and it satisfies piranha::has_negate.This method will compute the result of the multiplication of the two terms t1
and t2
with trigonometric key. The result is stored in the two terms of res
and it is computed using basic trigonometric formulae. Note however that this method will not perform the division by two implied by Werner's formulae. Also, in case Cf
is an instance of piranha::mp_rational, only the numerators of the coefficients will be multiplied.
res | result of the multiplication. |
t1 | first argument. |
t2 | second argument. |
args | the reference piranha::symbol_fset. |
std::overflow_error | if the computation of the result overflows type value_type . |
unspecified | any exception thrown by:
|
Definition at line 661 of file real_trigonometric_kronecker_monomial.hpp.
|
inline |
Inequality operator.
other | the comparison argument. |
Definition at line 741 of file real_trigonometric_kronecker_monomial.hpp.
|
inline |
Comparison operator.
The values of the internal integral instances are used for comparison. If the values are the same, the flavours of the monomials are compared to break the tie.
other | comparison argument. |
true
if this
is less than other
, false
otherwise. Definition at line 1300 of file real_trigonometric_kronecker_monomial.hpp.
|
default |
Copy assignment operator.
other | the assignment argument. |
this
.
|
default |
Move assignment operator.
other | the assignment argument. |
this
.
|
inline |
Equality operator.
other | the comparison argument. |
true
if the internal integral instance and the flavour of this
are the same of other
, false
otherwise. Definition at line 731 of file real_trigonometric_kronecker_monomial.hpp.
|
inline |
Partial derivative.
This method will return the partial derivative of this
with respect to the symbol at the position indicated by p
. The result is a pair consisting of the multiplier at the position p
and a copy of the monomial. The sign of the multiplier and the flavour of the resulting monomial are set according to the standard differentiation formulas for elementary trigonometric functions. If p
is not smaller than the size of args
or if its corresponding multiplier is zero, the returned pair will be (0,real_trigonometric_kronecker_monomial{args})
.
p | the position of the symbol with respect to which the differentiation will be calculated. |
args | the reference piranha::symbol_fset. |
unspecified | any exception thrown by unpack(). |
Definition at line 868 of file real_trigonometric_kronecker_monomial.hpp.
|
inline |
Print.
Thie method will print to stream a human-readable representation of the monomial.
os | target stream. |
args | the reference piranha::symbol_fset. |
unspecified | any exception thrown by unpack() or by streaming instances of value_type . |
Definition at line 771 of file real_trigonometric_kronecker_monomial.hpp.
|
inline |
Print in TeX mode.
This method will print to stream a TeX representation of the monomial.
os | target stream. |
args | the reference piranha::symbol_fset. |
unspecified | any exception thrown by unpack() or by streaming instances of value_type . |
Definition at line 816 of file real_trigonometric_kronecker_monomial.hpp.
|
inline |
Set flavour.
f | value to which the flavour will be set. |
Definition at line 302 of file real_trigonometric_kronecker_monomial.hpp.
|
inline |
Set the internal integer instance.
n | value to which the internal integer instance will be set. |
Definition at line 278 of file real_trigonometric_kronecker_monomial.hpp.
|
inline |
Substitution.
U
supports the mathematical operations needed to compute the return type.This method will substitute the symbols at the positions specified in the keys of smap
with the mapped values. The return value is a vector of two pairs computed according to the standard angle sum identities. That is, given a monomial of the form
\[ \begin{array}{c} \sin \\ \cos \end{array} \left(na + mb + c\right) \]
in which the symbols \( a \) and \( b \) are to be substituted with \( x \) and \( y \), the result of the substitution will be one of
\[ \left\{\left[\sin \left(nx+my\right),\cos c \right],\left[\cos \left(nx+my\right),\sin c \right]\right\} \]
or
\[ \left\{\left[\cos \left(nx+my\right),\cos c \right],\left[-\sin \left(nx+my\right),\sin c \right]\right\} \]
where \( \cos c \) and \( \sin c \) are returned as monomials, and \( \cos \left(nx+my\right) \) and \( \sin \left(nx+my\right) \) are computed via piranha::math::cos() and piranha::math::sin(). If s
is not in args
, \( \cos \left(nx+my\right) \) will be initialised to 1 and \( \sin \left(nx+my\right) \) to 0. If, after the substitution, the first nonzero multiplier in \( c \) is negative, \( c \) will be negated and the other signs changed accordingly.
smap | the map relating the positions of the symbols to be substituted to the values they will be substituted with. |
args | the reference piranha::symbol_fset. |
std::invalid_argument | if the last element of the substitution map is not smaller than the size of args . |
unspecified | any exception thrown by unpack(), the computation of the return value or memory errors in standard containers. |
Definition at line 1050 of file real_trigonometric_kronecker_monomial.hpp.
|
inline |
Trigonometric degree.
The type returned by this method is the type resulting from the addition of two instances of T
.
args | the reference symbol set for this . |
std::overflow_error | if the computation of the degree overflows. |
unspecified | any exception thrown by unpack(). |
Definition at line 466 of file real_trigonometric_kronecker_monomial.hpp.
|
inline |
Partial trigonometric degree.
Partial trigonometric degree of the monomial: only the symbols at the positions specified by p
are considered. The type returned by this method is the type resulting from the addition of two instances of T
.
p | the positions of the symbols to be considered in the calculation of the degree. |
args | the reference piranha::symbol_fset. |
p
.std::invalid_argument | if the last element of p , if existing, is not less than the size of args . |
std::overflow_error | if the computation of the degree overflows. |
unspecified | any exception thrown by unpack(). |
Definition at line 505 of file real_trigonometric_kronecker_monomial.hpp.
|
inline |
Low trigonometric degree (equivalent to the trigonometric degree).
args | the reference symbol set for this . |
unspecified | any exception thrown by t_degree(const symbol_fset &) const. |
Definition at line 485 of file real_trigonometric_kronecker_monomial.hpp.
|
inline |
Partial low trigonometric degree (equivalent to the partial trigonometric degree).
p | the positions of the symbols to be considered in the calculation of the degree. |
args | the reference piranha::symbol_fset. |
unspecified | any exception thrown by t_degree(const symbol_idx_fset &, const symbol_fset &) const. |
Definition at line 531 of file real_trigonometric_kronecker_monomial.hpp.
|
inline |
Low trigonometric order (equivalent to the trigonometric order).
args | the reference piranha::symbol_fset. |
unspecified | any exception thrown by t_order(const symbol_fset &) const. |
Definition at line 573 of file real_trigonometric_kronecker_monomial.hpp.
|
inline |
Partial low trigonometric order (equivalent to the partial trigonometric order).
p | positions of the symbols to be considered. |
args | the reference piranha::symbol_fset. |
unspecified | any exception thrown by t_order(const symbol_idx_fset &, const symbol_fset &) const. |
Definition at line 620 of file real_trigonometric_kronecker_monomial.hpp.
|
inline |
Trigonometric order.
The type returned by this method is the type resulting from the addition of the absolute values of two instances of T
.
args | the reference piranha::symbol_fset. |
std::overflow_error | if the computation of the order overflows. |
unspecified | any exception thrown by unpack(). |
Definition at line 553 of file real_trigonometric_kronecker_monomial.hpp.
|
inline |
Partial trigonometric order.
Partial trigonometric order of the monomial: only the symbols at the positions specified by p
are considered. The type returned by this method is the type resulting from the addition of the absolute values of two instances of T
.
p | the positions of the symbols to be considered in the calculation of the order. |
args | the reference piranha::symbol_fset. |
std::invalid_argument | if the last element of p , if existing, is not less than the size of args . |
std::overflow_error | if the computation of the degree overflows. |
unspecified | any exception thrown by unpack(). |
Definition at line 593 of file real_trigonometric_kronecker_monomial.hpp.
|
inline |
Trigonometric substitution.
U
supports the operations needed to compute the result.This method will substitute the cosine and sine of the symbol at the position idx
with, respectively, c
and s
. The substitution is performed using standard trigonometric formulae, and it will result in a list of two (substitution result, new monomial)
pairs. If idx
is not smaller than the size of this
, the result of the substitution will be the original monomial unchanged.
idx | the index of the symbol whose cosine and sine will be substituted. |
c | the quantity that will replace the cosine of the symbol at the position idx . |
s | the quantity that will replace the sine of the symbol at the position idx . |
args | the reference piranha::symbol_fset. |
unspecified | any exception thrown by:
|
Definition at line 1175 of file real_trigonometric_kronecker_monomial.hpp.
|
inline |
Trim.
This method is used in piranha::series::trim(). The input mask trim_mask
is a vector of boolean flags signalling (with nonzero values) elements of this
to be removed. The method will return a copy of this
in which the specified elements have been removed.
For instance, if this
contains the values [0,5,3,0,4]
and trim_mask
contains the values [false,false,false,true,false]
, then the output of this method will be the array of values [0,5,3,4]
(that is, the fourth element has been removed as indicated by a true
value in trim_mask
's fourth element).
trim_mask | a mask indicating which element will be removed. |
args | the reference piranha::symbol_fset. |
this
.std::invalid_argument | if the size of trim_mask differs from the size of args . |
unspecified | any exception thrown by unpack() or piranha::static_vector::push_back(). |
Definition at line 1287 of file real_trigonometric_kronecker_monomial.hpp.
|
inline |
Identify symbols that can be trimmed.
This method is used in piranha::series::trim(). The input parameter trim_mask
is a vector of boolean flags (i.e., a mask) which signals which elements in args
are candidates for trimming (i.e., a zero value means that the symbol at the corresponding position in args
is not a candidate for trimming, while a nonzero value means that the symbol is a candidate for trimming). This method will set to zero those values in trim_mask
for which the corresponding element in this
is nonzero.
For instance, if this
contains the values [0,5,3,0,4]
and trim_mask
originally contains the values [1,1,0,1,0]
, after a call to this method trim_mask
will contain [1,0,0,1,0]
(that is, the second element was set from 1 to 0 as the corresponding element in this
has a value of 5 and thus must not be trimmed).
trim_mask | a mask signalling candidate elements for trimming. |
args | the reference piranha::symbol_fset. |
std::invalid_argument | if the size of trim_mask differs from the size of args . |
unspecified | any exception thrown by unpack(). |
Definition at line 1263 of file real_trigonometric_kronecker_monomial.hpp.
|
inline |
Unpack internal integer instance.
This method will decode the internal integral instance into a piranha::static_vector of size equal to the size of args
.
args | the reference piranha::symbol_fset. |
std::invalid_argument | if the size of args is larger than the maximum size of piranha::static_vector. |
unspecified | any exception thrown by piranha::kronecker_array::decode(). |
Definition at line 758 of file real_trigonometric_kronecker_monomial.hpp.