piranha  0.10
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.

## ◆ operator=() [1/2]

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

Copy assignment operator.

Parameters
 other the assignment argument.
Returns
a reference to this.
Exceptions
 unspecified any 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
 other the assignment argument.
Returns
a reference to this.

## ◆ t_degree() [1/2]

template<typename Series>
template<typename T = trigonometric_series>
 t_degree_type 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
 unspecified any 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 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
 names the names of the variables to be considered in the computation.
Returns
the partial trigonometric degree of the series.
Exceptions
 unspecified any 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 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
 unspecified any 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 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
 names the names of the variables to be considered in the computation.
Returns
the partial trigonometric low degree of the series.
Exceptions
 unspecified any 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 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
 unspecified any 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 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
 names the names of the variables to be considered in the computation.
Returns
the partial trigonometric low order of the series.
Exceptions
 unspecified any 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 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
 unspecified any 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 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
 names the names of the variables to be considered in the computation.
Returns
the partial trigonometric order of the series.
Exceptions
 unspecified any 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: