Scythe-1.0.3
Namespaces | Defines | Functions
smath.h File Reference

Definitions for functions that perform common mathematical operations on every element of a Matrix. More...

#include "scythestat/matrix.h"
#include "scythestat/algorithm.h"
#include "scythestat/error.h"
#include <cmath>
#include <numeric>
#include <set>
Include dependency graph for smath.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  scythe
 

The Scythe library namespace.


Defines

#define SCYTHE_MATH_OP(NAME, OP)
#define SCYTHE_MATH_OP_2ARG(NAME, OP)

Functions

template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS>
Matrix< T, RO, RS > scythe::acos (const Matrix< T, PO, PS > &A)
 Calculate the inverse cosine of each element of a Matrix.
template<typename T , matrix_order O, matrix_style S>
Matrix< T, O, Concrete > scythe::acos (const Matrix< T, O, S > &A)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS>
Matrix< T, RO, RS > scythe::acosh (const Matrix< T, PO, PS > &A)
 Calculate the inverse hyperbolic cosine of each element of a Matrix.
template<typename T , matrix_order O, matrix_style S>
Matrix< T, O, Concrete > scythe::acosh (const Matrix< T, O, S > &A)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS>
Matrix< T, RO, RS > scythe::asin (const Matrix< T, PO, PS > &A)
 Calculate the inverse sine of each element of a Matrix.
template<typename T , matrix_order O, matrix_style S>
Matrix< T, O, Concrete > scythe::asin (const Matrix< T, O, S > &A)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS>
Matrix< T, RO, RS > scythe::asinh (const Matrix< T, PO, PS > &A)
 Calculate the inverse hyperbolic sine of each element of a Matrix.
template<typename T , matrix_order O, matrix_style S>
Matrix< T, O, Concrete > scythe::asinh (const Matrix< T, O, S > &A)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS>
Matrix< T, RO, RS > scythe::atan (const Matrix< T, PO, PS > &A)
 Calculate the inverse tangent of each element of a Matrix.
template<typename T , matrix_order O, matrix_style S>
Matrix< T, O, Concrete > scythe::atan (const Matrix< T, O, S > &A)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS>
Matrix< T, RO, RS > scythe::atanh (const Matrix< T, PO, PS > &A)
 Calculate the inverse hyperbolic tangent of each element of a Matrix.
template<typename T , matrix_order O, matrix_style S>
Matrix< T, O, Concrete > scythe::atanh (const Matrix< T, O, S > &A)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO1, matrix_style PS1, matrix_order PO2, matrix_style PS2, typename S >
Matrix< T, RO, RS > scythe::atan2 (const Matrix< T, PO1, PS1 > &A, const Matrix< S, PO2, PS2 > &B)
 Calculate the angle whose tangent is y/x.
template<typename T , matrix_order PO1, matrix_style PS1, matrix_order PO2, matrix_style PS2, typename S >
Matrix< T, PO1, Concrete > scythe::atan2 (const Matrix< T, PO1, PS1 > &A, const Matrix< S, PO2, PS2 > &B)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS, typename S >
Matrix< T, RO, RS > scythe::atan2 (const Matrix< T, PO, PS > &A, S b)
template<typename T , typename S , matrix_order PO, matrix_style PS>
Matrix< T, PO, Concrete > scythe::atan2 (const Matrix< T, PO, PS > &A, S b)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS, typename S >
Matrix< T, RO, RS > scythe::atan2 (T a, const Matrix< S, PO, PS > &B)
template<typename T , typename S , matrix_order PO, matrix_style PS>
Matrix< T, PO, Concrete > scythe::atan2 (T a, const Matrix< S, PO, PS > &B)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS>
Matrix< T, RO, RS > scythe::cbrt (const Matrix< T, PO, PS > &A)
 Calculate the cube root of each element of a Matrix.
template<typename T , matrix_order O, matrix_style S>
Matrix< T, O, Concrete > scythe::cbrt (const Matrix< T, O, S > &A)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS>
Matrix< T, RO, RS > scythe::ceil (const Matrix< T, PO, PS > &A)
 Calculate the ceiling of each element of a Matrix.
template<typename T , matrix_order O, matrix_style S>
Matrix< T, O, Concrete > scythe::ceil (const Matrix< T, O, S > &A)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO1, matrix_style PS1, matrix_order PO2, matrix_style PS2, typename S >
Matrix< T, RO, RS > scythe::copysign (const Matrix< T, PO1, PS1 > &A, const Matrix< S, PO2, PS2 > &B)
 Create a matrix containing the absolute value of the first input and the sign of the second input.
template<typename T , matrix_order PO1, matrix_style PS1, matrix_order PO2, matrix_style PS2, typename S >
Matrix< T, PO1, Concrete > scythe::copysign (const Matrix< T, PO1, PS1 > &A, const Matrix< S, PO2, PS2 > &B)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS, typename S >
Matrix< T, RO, RS > scythe::copysign (const Matrix< T, PO, PS > &A, S b)
template<typename T , typename S , matrix_order PO, matrix_style PS>
Matrix< T, PO, Concrete > scythe::copysign (const Matrix< T, PO, PS > &A, S b)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS, typename S >
Matrix< T, RO, RS > scythe::copysign (T a, const Matrix< S, PO, PS > &B)
template<typename T , typename S , matrix_order PO, matrix_style PS>
Matrix< T, PO, Concrete > scythe::copysign (T a, const Matrix< S, PO, PS > &B)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS>
Matrix< T, RO, RS > scythe::cos (const Matrix< T, PO, PS > &A)
 Calculate the cosine of each element of a Matrix.
template<typename T , matrix_order O, matrix_style S>
Matrix< T, O, Concrete > scythe::cos (const Matrix< T, O, S > &A)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS>
Matrix< T, RO, RS > scythe::cosh (const Matrix< T, PO, PS > &A)
 Calculate the hyperbolic cosine of each element of a Matrix.
template<typename T , matrix_order O, matrix_style S>
Matrix< T, O, Concrete > scythe::cosh (const Matrix< T, O, S > &A)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS>
Matrix< T, RO, RS > scythe::erf (const Matrix< T, PO, PS > &A)
 Calculate the error function of each element of a Matrix.
template<typename T , matrix_order O, matrix_style S>
Matrix< T, O, Concrete > scythe::erf (const Matrix< T, O, S > &A)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS>
Matrix< T, RO, RS > scythe::erfc (const Matrix< T, PO, PS > &A)
 Calculate the complementary error function of each element of a Matrix.
template<typename T , matrix_order O, matrix_style S>
Matrix< T, O, Concrete > scythe::erfc (const Matrix< T, O, S > &A)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS>
Matrix< T, RO, RS > scythe::exp (const Matrix< T, PO, PS > &A)
 Calculate the value e^x for each element of a Matrix.
template<typename T , matrix_order O, matrix_style S>
Matrix< T, O, Concrete > scythe::exp (const Matrix< T, O, S > &A)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS>
Matrix< T, RO, RS > scythe::expm1 (const Matrix< T, PO, PS > &A)
 Calculate the value e^(x-1) for each element of a Matrix.
template<typename T , matrix_order O, matrix_style S>
Matrix< T, O, Concrete > scythe::expm1 (const Matrix< T, O, S > &A)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS>
Matrix< T, RO, RS > scythe::fabs (const Matrix< T, PO, PS > &A)
 Calculate the absolute value of each element of a Matrix.
template<typename T , matrix_order O, matrix_style S>
Matrix< T, O, Concrete > scythe::fabs (const Matrix< T, O, S > &A)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS>
Matrix< T, RO, RS > scythe::floor (const Matrix< T, PO, PS > &A)
 Calculate the floor of each element of a Matrix.
template<typename T , matrix_order O, matrix_style S>
Matrix< T, O, Concrete > scythe::floor (const Matrix< T, O, S > &A)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO1, matrix_style PS1, matrix_order PO2, matrix_style PS2, typename S >
Matrix< T, RO, RS > scythe::fmod (const Matrix< T, PO1, PS1 > &A, const Matrix< S, PO2, PS2 > &B)
 Calculate the remainder of the division of each matrix element.
template<typename T , matrix_order PO1, matrix_style PS1, matrix_order PO2, matrix_style PS2, typename S >
Matrix< T, PO1, Concrete > scythe::fmod (const Matrix< T, PO1, PS1 > &A, const Matrix< S, PO2, PS2 > &B)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS, typename S >
Matrix< T, RO, RS > scythe::fmod (const Matrix< T, PO, PS > &A, S b)
template<typename T , typename S , matrix_order PO, matrix_style PS>
Matrix< T, PO, Concrete > scythe::fmod (const Matrix< T, PO, PS > &A, S b)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS, typename S >
Matrix< T, RO, RS > scythe::fmod (T a, const Matrix< S, PO, PS > &B)
template<typename T , typename S , matrix_order PO, matrix_style PS>
Matrix< T, PO, Concrete > scythe::fmod (T a, const Matrix< S, PO, PS > &B)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO1, matrix_style PS1, matrix_order PO2, matrix_style PS2>
Matrix< T, RO, RS > scythe::frexp (const Matrix< T, PO1, PS1 > &A, Matrix< int, PO2, PS2 > &ex)
template<typename T , matrix_order PO1, matrix_style PS1, matrix_order PO2, matrix_style PS2>
Matrix< T, PO1, Concrete > scythe::frexp (Matrix< T, PO1, PS1 > &A, Matrix< int, PO2, PS2 > &ex)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO1, matrix_style PS1, matrix_order PO2, matrix_style PS2, typename S >
Matrix< T, RO, RS > scythe::hypot (const Matrix< T, PO1, PS1 > &A, const Matrix< S, PO2, PS2 > &B)
 Calculate the euclidean distance between two inputs.
template<typename T , matrix_order PO1, matrix_style PS1, matrix_order PO2, matrix_style PS2, typename S >
Matrix< T, PO1, Concrete > scythe::hypot (const Matrix< T, PO1, PS1 > &A, const Matrix< S, PO2, PS2 > &B)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS, typename S >
Matrix< T, RO, RS > scythe::hypot (const Matrix< T, PO, PS > &A, S b)
template<typename T , typename S , matrix_order PO, matrix_style PS>
Matrix< T, PO, Concrete > scythe::hypot (const Matrix< T, PO, PS > &A, S b)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS, typename S >
Matrix< T, RO, RS > scythe::hypot (T a, const Matrix< S, PO, PS > &B)
template<typename T , typename S , matrix_order PO, matrix_style PS>
Matrix< T, PO, Concrete > scythe::hypot (T a, const Matrix< S, PO, PS > &B)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS>
Matrix< T, RO, RS > scythe::ilogb (const Matrix< T, PO, PS > &A)
template<typename T , matrix_order O, matrix_style S>
Matrix< T, O, Concrete > scythe::ilogb (const Matrix< T, O, S > &A)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS>
Matrix< T, RO, RS > scythe::j0 (const Matrix< T, PO, PS > &A)
 Compute the Bessel function of the first kind of the order 0.
template<typename T , matrix_order O, matrix_style S>
Matrix< T, O, Concrete > scythe::j0 (const Matrix< T, O, S > &A)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS>
Matrix< T, RO, RS > scythe::j1 (const Matrix< T, PO, PS > &A)
 Compute the Bessel function of the first kind of the order 1.
template<typename T , matrix_order O, matrix_style S>
Matrix< T, O, Concrete > scythe::j1 (const Matrix< T, O, S > &A)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO1, matrix_style PS1, matrix_order PO2, matrix_style PS2, typename S >
Matrix< T, RO, RS > scythe::jn (const Matrix< T, PO1, PS1 > &A, const Matrix< S, PO2, PS2 > &B)
 Compute the Bessel function of the first kind of the order n.
template<typename T , matrix_order PO1, matrix_style PS1, matrix_order PO2, matrix_style PS2, typename S >
Matrix< T, PO1, Concrete > scythe::jn (const Matrix< T, PO1, PS1 > &A, const Matrix< S, PO2, PS2 > &B)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS, typename S >
Matrix< T, RO, RS > scythe::jn (const Matrix< T, PO, PS > &A, S b)
template<typename T , typename S , matrix_order PO, matrix_style PS>
Matrix< T, PO, Concrete > scythe::jn (const Matrix< T, PO, PS > &A, S b)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS, typename S >
Matrix< T, RO, RS > scythe::jn (T a, const Matrix< S, PO, PS > &B)
template<typename T , typename S , matrix_order PO, matrix_style PS>
Matrix< T, PO, Concrete > scythe::jn (T a, const Matrix< S, PO, PS > &B)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO1, matrix_style PS1, matrix_order PO2, matrix_style PS2, typename S >
Matrix< T, RO, RS > scythe::ldexp (const Matrix< T, PO1, PS1 > &A, const Matrix< S, PO2, PS2 > &B)
 Compute x * 2^ex.
template<typename T , matrix_order PO1, matrix_style PS1, matrix_order PO2, matrix_style PS2, typename S >
Matrix< T, PO1, Concrete > scythe::ldexp (const Matrix< T, PO1, PS1 > &A, const Matrix< S, PO2, PS2 > &B)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS, typename S >
Matrix< T, RO, RS > scythe::ldexp (const Matrix< T, PO, PS > &A, S b)
template<typename T , typename S , matrix_order PO, matrix_style PS>
Matrix< T, PO, Concrete > scythe::ldexp (const Matrix< T, PO, PS > &A, S b)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS, typename S >
Matrix< T, RO, RS > scythe::ldexp (T a, const Matrix< S, PO, PS > &B)
template<typename T , typename S , matrix_order PO, matrix_style PS>
Matrix< T, PO, Concrete > scythe::ldexp (T a, const Matrix< S, PO, PS > &B)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS>
Matrix< T, RO, RS > scythe::lgamma (const Matrix< T, PO, PS > &A)
 Compute the natural log of the absolute value of the gamma function.
template<typename T , matrix_order O, matrix_style S>
Matrix< T, O, Concrete > scythe::lgamma (const Matrix< T, O, S > &A)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS>
Matrix< T, RO, RS > scythe::log (const Matrix< T, PO, PS > &A)
 Compute the natural log of each element of a Matrix.
template<typename T , matrix_order O, matrix_style S>
Matrix< T, O, Concrete > scythe::log (const Matrix< T, O, S > &A)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS>
Matrix< T, RO, RS > scythe::log10 (const Matrix< T, PO, PS > &A)
 Compute the log base 10 of each element of a Matrix.
template<typename T , matrix_order O, matrix_style S>
Matrix< T, O, Concrete > scythe::log10 (const Matrix< T, O, S > &A)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS>
Matrix< T, RO, RS > scythe::log1p (const Matrix< T, PO, PS > &A)
 Compute the natural log of 1 + each element of a Matrix.
template<typename T , matrix_order O, matrix_style S>
Matrix< T, O, Concrete > scythe::log1p (const Matrix< T, O, S > &A)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS>
Matrix< T, RO, RS > scythe::logb (const Matrix< T, PO, PS > &A)
 Compute the logb each element of a Matrix.
template<typename T , matrix_order O, matrix_style S>
Matrix< T, O, Concrete > scythe::logb (const Matrix< T, O, S > &A)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO1, matrix_style PS1, matrix_order PO2, matrix_style PS2>
Matrix< T, RO, RS > scythe::modf (const Matrix< T, PO1, PS1 > &A, Matrix< double, PO2, PS2 > &ipart)
template<typename T , matrix_order PO1, matrix_style PS1, matrix_order PO2, matrix_style PS2>
Matrix< T, PO1, Concrete > scythe::modf (Matrix< T, PO1, PS1 > &A, Matrix< double, PO2, PS2 > &ipart)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO1, matrix_style PS1, matrix_order PO2, matrix_style PS2, typename S >
Matrix< T, RO, RS > scythe::pow (const Matrix< T, PO1, PS1 > &A, const Matrix< S, PO2, PS2 > &B)
 Compute x^ex for each element of a matrix.
template<typename T , matrix_order PO1, matrix_style PS1, matrix_order PO2, matrix_style PS2, typename S >
Matrix< T, PO1, Concrete > scythe::pow (const Matrix< T, PO1, PS1 > &A, const Matrix< S, PO2, PS2 > &B)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS, typename S >
Matrix< T, RO, RS > scythe::pow (const Matrix< T, PO, PS > &A, S b)
template<typename T , typename S , matrix_order PO, matrix_style PS>
Matrix< T, PO, Concrete > scythe::pow (const Matrix< T, PO, PS > &A, S b)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS, typename S >
Matrix< T, RO, RS > scythe::pow (T a, const Matrix< S, PO, PS > &B)
template<typename T , typename S , matrix_order PO, matrix_style PS>
Matrix< T, PO, Concrete > scythe::pow (T a, const Matrix< S, PO, PS > &B)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO1, matrix_style PS1, matrix_order PO2, matrix_style PS2, typename S >
Matrix< T, RO, RS > scythe::remainder (const Matrix< T, PO1, PS1 > &A, const Matrix< S, PO2, PS2 > &B)
template<typename T , matrix_order PO1, matrix_style PS1, matrix_order PO2, matrix_style PS2, typename S >
Matrix< T, PO1, Concrete > scythe::remainder (const Matrix< T, PO1, PS1 > &A, const Matrix< S, PO2, PS2 > &B)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS, typename S >
Matrix< T, RO, RS > scythe::remainder (const Matrix< T, PO, PS > &A, S b)
template<typename T , typename S , matrix_order PO, matrix_style PS>
Matrix< T, PO, Concrete > scythe::remainder (const Matrix< T, PO, PS > &A, S b)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS, typename S >
Matrix< T, RO, RS > scythe::remainder (T a, const Matrix< S, PO, PS > &B)
template<typename T , typename S , matrix_order PO, matrix_style PS>
Matrix< T, PO, Concrete > scythe::remainder (T a, const Matrix< S, PO, PS > &B)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS>
Matrix< T, RO, RS > scythe::rint (const Matrix< T, PO, PS > &A)
 Return x rounded to the nearest integer.
template<typename T , matrix_order O, matrix_style S>
Matrix< T, O, Concrete > scythe::rint (const Matrix< T, O, S > &A)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO1, matrix_style PS1, matrix_order PO2, matrix_style PS2, typename S >
Matrix< T, RO, RS > scythe::scalbn (const Matrix< T, PO1, PS1 > &A, const Matrix< S, PO2, PS2 > &B)
template<typename T , matrix_order PO1, matrix_style PS1, matrix_order PO2, matrix_style PS2, typename S >
Matrix< T, PO1, Concrete > scythe::scalbn (const Matrix< T, PO1, PS1 > &A, const Matrix< S, PO2, PS2 > &B)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS, typename S >
Matrix< T, RO, RS > scythe::scalbn (const Matrix< T, PO, PS > &A, S b)
template<typename T , typename S , matrix_order PO, matrix_style PS>
Matrix< T, PO, Concrete > scythe::scalbn (const Matrix< T, PO, PS > &A, S b)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS, typename S >
Matrix< T, RO, RS > scythe::scalbn (T a, const Matrix< S, PO, PS > &B)
template<typename T , typename S , matrix_order PO, matrix_style PS>
Matrix< T, PO, Concrete > scythe::scalbn (T a, const Matrix< S, PO, PS > &B)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS>
Matrix< T, RO, RS > scythe::sin (const Matrix< T, PO, PS > &A)
 Calculate the sine of each element of a Matrix.
template<typename T , matrix_order O, matrix_style S>
Matrix< T, O, Concrete > scythe::sin (const Matrix< T, O, S > &A)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS>
Matrix< T, RO, RS > scythe::sinh (const Matrix< T, PO, PS > &A)
 Calculate the hyperbolic sine of each element of a Matrix.
template<typename T , matrix_order O, matrix_style S>
Matrix< T, O, Concrete > scythe::sinh (const Matrix< T, O, S > &A)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS>
Matrix< T, RO, RS > scythe::sqrt (const Matrix< T, PO, PS > &A)
 Calculate the square root of each element in a matrix.
template<typename T , matrix_order O, matrix_style S>
Matrix< T, O, Concrete > scythe::sqrt (const Matrix< T, O, S > &A)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS>
Matrix< T, RO, RS > scythe::tan (const Matrix< T, PO, PS > &A)
 Calculate the tangent of each element of a Matrix.
template<typename T , matrix_order O, matrix_style S>
Matrix< T, O, Concrete > scythe::tan (const Matrix< T, O, S > &A)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS>
Matrix< T, RO, RS > scythe::tanh (const Matrix< T, PO, PS > &A)
 Calculate the hyperbolic tangent of each element of a Matrix.
template<typename T , matrix_order O, matrix_style S>
Matrix< T, O, Concrete > scythe::tanh (const Matrix< T, O, S > &A)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS>
Matrix< T, RO, RS > scythe::y0 (const Matrix< T, PO, PS > &A)
 Compute the Bessel function of the second kind of order 0.
template<typename T , matrix_order O, matrix_style S>
Matrix< T, O, Concrete > scythe::y0 (const Matrix< T, O, S > &A)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS>
Matrix< T, RO, RS > scythe::y1 (const Matrix< T, PO, PS > &A)
 Compute the Bessel function of the second kind of order 1.
template<typename T , matrix_order O, matrix_style S>
Matrix< T, O, Concrete > scythe::y1 (const Matrix< T, O, S > &A)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO1, matrix_style PS1, matrix_order PO2, matrix_style PS2, typename S >
Matrix< T, RO, RS > scythe::yn (const Matrix< T, PO1, PS1 > &A, const Matrix< S, PO2, PS2 > &B)
 Compute the Bessel function of the second kind of order n.
template<typename T , matrix_order PO1, matrix_style PS1, matrix_order PO2, matrix_style PS2, typename S >
Matrix< T, PO1, Concrete > scythe::yn (const Matrix< T, PO1, PS1 > &A, const Matrix< S, PO2, PS2 > &B)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS, typename S >
Matrix< T, RO, RS > scythe::yn (const Matrix< T, PO, PS > &A, S b)
template<typename T , typename S , matrix_order PO, matrix_style PS>
Matrix< T, PO, Concrete > scythe::yn (const Matrix< T, PO, PS > &A, S b)
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS, typename S >
Matrix< T, RO, RS > scythe::yn (T a, const Matrix< S, PO, PS > &B)
template<typename T , typename S , matrix_order PO, matrix_style PS>
Matrix< T, PO, Concrete > scythe::yn (T a, const Matrix< S, PO, PS > &B)

Detailed Description

Definitions for functions that perform common mathematical operations on every element of a Matrix.

Note:
As is the case throughout the library, we provide both general and default template definitions of the Matrix-returning functions in this file, explicitly providing documentation for only the general template versions. As is also often the case, Doxygen does not always correctly add the default template definition to the function list below; there is always a default template definition available for every function.