piranha  0.10
Public Member Functions | List of all members
piranha::trigonometric_series< Series > Class Template Reference

Trigonometric series toolbox. More...

#include <piranha/trigonometric_series.hpp>

Inherits Series, and piranha::detail::trigonometric_series_tag.

Public Member Functions

 trigonometric_series ()=default
 Defaulted default constructor.
 
 trigonometric_series (const trigonometric_series &)=default
 Defaulted copy constructor.
 
 trigonometric_series (trigonometric_series &&)=default
 Defaulted move constructor.
 
trigonometric_seriesoperator= (const trigonometric_series &other)=default
 Copy assignment operator. More...
 
trigonometric_seriesoperator= (trigonometric_series &&other)=default
 Move assignment operator. More...
 
 ~trigonometric_series ()
 Trivial destructor.
 
template<typename T = trigonometric_series>
t_degree_type< T > t_degree () const
 Trigonometric degree. More...
 
template<typename T = trigonometric_series>
pt_degree_type< T > t_degree (const symbol_fset &names) const
 Partial trigonometric degree. More...
 
template<typename T = trigonometric_series>
t_ldegree_type< T > t_ldegree () const
 Trigonometric low degree. More...
 
template<typename T = trigonometric_series>
pt_ldegree_type< T > t_ldegree (const symbol_fset &names) const
 Partial trigonometric low degree. More...
 
template<typename T = trigonometric_series>
t_order_type< T > t_order () const
 Trigonometric order. More...
 
template<typename T = trigonometric_series>
pt_order_type< T > t_order (const symbol_fset &names) const
 Partial trigonometric order. More...
 
template<typename T = trigonometric_series>
t_lorder_type< T > t_lorder () const
 Trigonometric low order. More...
 
template<typename T = trigonometric_series>
pt_lorder_type< T > t_lorder (const symbol_fset &names) const
 Partial trigonometric low order. More...
 

Detailed Description

template<typename Series>
class piranha::trigonometric_series< Series >

Trigonometric series toolbox.

This toolbox extends a series class with properties of trigonometric series. Specifically, this class will conditionally add methods to query the trigonometric (partial,low) degree and order of a series. This augmentation takes places if either the coefficient or the key satisfy the relevant type traits: piranha::has_t_degree and related for the coefficient type, piranha::key_has_t_degree and related for the key type.

Note that in order for the trigonometric methods to be enabled, coefficient and key type cannot satisfy these type traits at the same time, and all degree/order type traits need to be satisfied for the coefficient/key type. As an additional requirement, the types returned when querying the degree and order must be constructible from int, copy or move constructible, and less-than comparable.

If the above requirements are not satisfied, this class will not add any new functionality to the Series class and will just provide generic constructors and assignment operators that will forward their arguments to Series.

This class satisfies the piranha::is_series type trait.

Exception safety guarantee

This class provides the same guarantee as Series.

Type requirements

Series must be an instance of piranha::series.

Move semantics

Move semantics is equivalent to the move semantics of Series.

Definition at line 88 of file trigonometric_series.hpp.

Member Function Documentation

◆ operator=() [1/2]

template<typename Series>
trigonometric_series& piranha::trigonometric_series< Series >::operator= ( const trigonometric_series< Series > &  other)
default

Copy assignment operator.

Parameters
otherthe assignment argument.
Returns
a reference to this.
Exceptions
unspecifiedany exception thrown by the assignment operator of the base class.

◆ operator=() [2/2]

template<typename Series>
trigonometric_series& piranha::trigonometric_series< Series >::operator= ( trigonometric_series< Series > &&  other)
default

Move assignment operator.

Parameters
otherthe assignment argument.
Returns
a reference to this.

◆ t_degree() [1/2]

template<typename Series>
template<typename T = trigonometric_series>
t_degree_type<T> piranha::trigonometric_series< Series >::t_degree ( ) const
inline

Trigonometric degree.

Note
This method is enabled only if the requirements outlined in piranha::trigonometric_series are satisfied.
Returns
the total trigonometric degree of the series.
Exceptions
unspecifiedany exception resulting from the computation and comparison of the degree of the individual terms.

Definition at line 204 of file trigonometric_series.hpp.

◆ t_degree() [2/2]

template<typename Series>
template<typename T = trigonometric_series>
pt_degree_type<T> piranha::trigonometric_series< Series >::t_degree ( const symbol_fset names) const
inline

Partial trigonometric degree.

Note
This method is enabled only if the requirements outlined in piranha::trigonometric_series are satisfied.
Parameters
namesthe names of the variables to be considered in the computation.
Returns
the partial trigonometric degree of the series.
Exceptions
unspecifiedany exception resulting from the computation and comparison of the degree of the individual terms.

Definition at line 226 of file trigonometric_series.hpp.

◆ t_ldegree() [1/2]

template<typename Series>
template<typename T = trigonometric_series>
t_ldegree_type<T> piranha::trigonometric_series< Series >::t_ldegree ( ) const
inline

Trigonometric low degree.

Note
This method is enabled only if the requirements outlined in piranha::trigonometric_series are satisfied.
Returns
the total trigonometric low degree of the series.
Exceptions
unspecifiedany exception resulting from the computation and comparison of the degree of the individual terms.

Definition at line 248 of file trigonometric_series.hpp.

◆ t_ldegree() [2/2]

template<typename Series>
template<typename T = trigonometric_series>
pt_ldegree_type<T> piranha::trigonometric_series< Series >::t_ldegree ( const symbol_fset names) const
inline

Partial trigonometric low degree.

Note
This method is enabled only if the requirements outlined in piranha::trigonometric_series are satisfied.
Parameters
namesthe names of the variables to be considered in the computation.
Returns
the partial trigonometric low degree of the series.
Exceptions
unspecifiedany exception resulting from the computation and comparison of the degree of the individual terms.

Definition at line 270 of file trigonometric_series.hpp.

◆ t_lorder() [1/2]

template<typename Series>
template<typename T = trigonometric_series>
t_lorder_type<T> piranha::trigonometric_series< Series >::t_lorder ( ) const
inline

Trigonometric low order.

Note
This method is enabled only if the requirements outlined in piranha::trigonometric_series are satisfied.
Returns
the total trigonometric low order of the series.
Exceptions
unspecifiedany exception resulting from the computation and comparison of the order of the individual terms.

Definition at line 335 of file trigonometric_series.hpp.

◆ t_lorder() [2/2]

template<typename Series>
template<typename T = trigonometric_series>
pt_lorder_type<T> piranha::trigonometric_series< Series >::t_lorder ( const symbol_fset names) const
inline

Partial trigonometric low order.

Note
This method is enabled only if the requirements outlined in piranha::trigonometric_series are satisfied.
Parameters
namesthe names of the variables to be considered in the computation.
Returns
the partial trigonometric low order of the series.
Exceptions
unspecifiedany exception resulting from the computation and comparison of the order of the individual terms.

Definition at line 357 of file trigonometric_series.hpp.

◆ t_order() [1/2]

template<typename Series>
template<typename T = trigonometric_series>
t_order_type<T> piranha::trigonometric_series< Series >::t_order ( ) const
inline

Trigonometric order.

Note
This method is enabled only if the requirements outlined in piranha::trigonometric_series are satisfied.
Returns
the total trigonometric order of the series.
Exceptions
unspecifiedany exception resulting from the computation and comparison of the order of the individual terms.

Definition at line 292 of file trigonometric_series.hpp.

◆ t_order() [2/2]

template<typename Series>
template<typename T = trigonometric_series>
pt_order_type<T> piranha::trigonometric_series< Series >::t_order ( const symbol_fset names) const
inline

Partial trigonometric order.

Note
This method is enabled only if the requirements outlined in piranha::trigonometric_series are satisfied.
Parameters
namesthe names of the variables to be considered in the computation.
Returns
the partial trigonometric order of the series.
Exceptions
unspecifiedany exception resulting from the computation and comparison of the order of the individual terms.

Definition at line 314 of file trigonometric_series.hpp.


The documentation for this class was generated from the following file: