26 #ifndef _CXSC_DOT_HPP_INCLUDED
27 #define _CXSC_DOT_HPP_INCLUDED
44 typedef d_otpr Dotprecision;
50 #include "ioflags.hpp"
57 template<
typename S,
typename T>
58 static inline void addDot( dotprecision&,
const S&,
const T&);
59 template<
typename S,
typename T>
60 static inline void addDot( cdotprecision&,
const S&,
const T&);
61 template<
typename S,
typename T>
62 static inline void addDot( cidotprecision&,
const S&,
const T&);
63 template<
typename S,
typename T>
64 static inline void addDot_op( dotprecision&,
const S&,
const T&);
65 template<
typename S,
typename T>
66 static inline void addDot_op( cdotprecision&,
const S&,
const T&);
68 static inline void addSum( dotprecision&,
const S&);
82 #ifdef CXSC_USE_TLS_PREC
85 extern __declspec(thread)
unsigned int opdotprec;
87 extern __thread
unsigned int opdotprec;
92 extern unsigned int opdotprec;
129 inline int get_k()
const {
return k; }
131 inline void set_k(
unsigned int i) { k=i; }
278 template<
typename S,
typename T>
279 friend INLINE
void addDot(
dotprecision&,
const S&,
const T&);
280 template<
typename S,
typename T>
281 friend INLINE
void addDot(
cdotprecision&,
const S&,
const T&);
282 template<
typename S,
typename T>
285 template<
typename S,
typename T>
286 friend INLINE
void addDot_op(
dotprecision&,
const S&,
const T&);
287 template<
typename S,
typename T>
288 friend INLINE
void addDot_op(
cdotprecision&,
const S&,
const T&);
295 inline Dotprecision* ptr() {
return &akku; }
305 std::string & operator <<(std::string &,
const dotprecision &) noexcept;
306 std::string & operator >>(std::string &,
dotprecision &) noexcept;
307 void operator >>(
const std::string &,
dotprecision &) noexcept;
309 std::ostream & operator <<(std::ostream &,
const dotprecision &) noexcept;
310 std::istream & operator >>(std::istream &,
dotprecision &) noexcept;
The Data Type cdotprecision.
The Data Type cidotprecision.
The Data Type dotprecision.
friend dotprecision abs(const dotprecision &) noexcept
The absolute value of a dotprecision value.
friend dotprecision & operator-=(dotprecision &, const dotprecision &) noexcept
Implementation of standard algebraic subtraction and allocation operation.
void set_err(real e)
Set the current error value, use with caution.
friend dotprecision _dotprecision(const real &d) noexcept
Deprecated typecast, which only exist for the reason of compatibility with older versions of C-XSC.
friend dotprecision operator+(const dotprecision &) noexcept
Implementation of standard algebraic positive sign operation.
friend bool operator<(const dotprecision &, const dotprecision &) noexcept
Implementation of standard less-than operation.
friend bool operator!=(const dotprecision &, const dotprecision &) noexcept
Implementation of standard negated equality operation.
friend idotprecision operator|(const dotprecision &, const dotprecision &) noexcept
Returns the convex hull of the arguments.
friend bool operator==(const dotprecision &, const dotprecision &) noexcept
Implementation of standard equality operation.
dotprecision(void) noexcept
Constructor of class dotprecision.
friend bool operator>(const dotprecision &, const dotprecision &) noexcept
Implementation of standard greater-than operation.
friend int sign(const dotprecision &) noexcept
The sign of a dotprecision value.
int get_k() const
Get currently set precision for computation of dot products.
friend std::string & operator<<(std::string &, const dotprecision &) noexcept
Implementation of standard output method.
void set_dotprec(unsigned int i)
Set precision for computation of dot products.
friend std::string & operator>>(std::string &, dotprecision &) noexcept
Implementation of standard input method.
dotprecision & operator=(const dotprecision &) noexcept
Implementation of standard assigning operator.
friend bool operator!(const dotprecision &) noexcept
Implementation of standard negation operation.
friend void rnd(const dotprecision &, real &, rndtype) noexcept
Converting the exact dotprecision value with one rounding into a real value.
friend dotprecision & operator+=(dotprecision &, const dotprecision &) noexcept
Implementation of standard algebraic addition and allocation operation.
int get_dotprec() const
Get currently set precision for computation of dot products.
friend dotprecision operator-(const dotprecision &) noexcept
Implementation of standard algebraic negative sign operation.
friend dotprecision & accumulate_approx(dotprecision &, const real &, const real &) noexcept
The accurate scalar product of the last two arguments added to the value of the first argument (no er...
friend dotprecision & accumulate(dotprecision &, const real &, const real &) noexcept
The accurate scalar product of the last two arguments added to the value of the first argument.
friend bool operator<=(const dotprecision &, const dotprecision &) noexcept
Implementation of standard less-or-equal-than operation.
void set_k(unsigned int i)
Set precision for computation of dot products.
friend bool operator>=(const dotprecision &, const dotprecision &) noexcept
Implementation of standard greater-or-equal-than operation.
real get_err() const
Get the current error value (if dot products not computed in maximum precision)
The Data Type idotprecision.
The Scalar Type interval.
The Multiple-Precision Data Type l_real.
The namespace cxsc, providing all functionality of the class library C-XSC.
dotprecision _dotprecision(const real &d) noexcept
cdotprecision & operator+=(cdotprecision &cd, const l_complex &lc) noexcept
Implementation of standard algebraic addition and allocation operation.
ivector abs(const cimatrix_subv &mv) noexcept
Returns the absolute value of the matrix.