26#ifndef _CXSC_DOT_HPP_INCLUDED
27#define _CXSC_DOT_HPP_INCLUDED
44typedef d_otpr Dotprecision;
57template<
typename S,
typename T>
58static inline void addDot( dotprecision&,
const S&,
const T&);
59template<
typename S,
typename T>
60static inline void addDot( cdotprecision&,
const S&,
const T&);
61template<
typename S,
typename T>
62static inline void addDot( cidotprecision&,
const S&,
const T&);
63template<
typename S,
typename T>
64static inline void addDot_op( dotprecision&,
const S&,
const T&);
65template<
typename S,
typename T>
66static inline void addDot_op( cdotprecision&,
const S&,
const T&);
68static inline void addSum( dotprecision&,
const S&);
82#ifdef CXSC_USE_TLS_PREC
85extern __declspec(thread)
unsigned int opdotprec;
87extern __thread
unsigned int opdotprec;
92extern 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 operator+(const dotprecision &) noexcept
Implementation of standard algebraic positive sign operation.
friend bool operator>=(const dotprecision &, const dotprecision &) noexcept
Implementation of standard greater-or-equal-than operation.
friend dotprecision _dotprecision(const real &d) noexcept
Deprecated typecast, which only exist for the reason of compatibility with older versions of C-XSC.
friend int sign(const dotprecision &) noexcept
The sign of a dotprecision value.
friend bool operator>(const dotprecision &, const dotprecision &) noexcept
Implementation of standard greater-than operation.
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 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...
void set_err(real e)
Set the current error value, use with caution.
friend bool operator<=(const dotprecision &, const dotprecision &) noexcept
Implementation of standard less-or-equal-than operation.
friend dotprecision & operator-=(dotprecision &, const dotprecision &) noexcept
Implementation of standard algebraic subtraction and allocation operation.
friend bool operator!(const dotprecision &) noexcept
Implementation of standard negation operation.
friend std::string & operator<<(std::string &, const dotprecision &) noexcept
Implementation of standard output method.
friend dotprecision abs(const dotprecision &) noexcept
The absolute value of a dotprecision value.
friend bool operator==(const dotprecision &, const dotprecision &) noexcept
Implementation of standard equality operation.
friend bool operator<(const dotprecision &, const dotprecision &) noexcept
Implementation of standard less-than operation.
dotprecision(void) noexcept
Constructor of class dotprecision.
friend dotprecision operator-(const dotprecision &) noexcept
Implementation of standard algebraic negative sign operation.
friend bool operator!=(const dotprecision &, const dotprecision &) noexcept
Implementation of standard negated equality operation.
int get_k() const
Get currently set precision for computation of dot products.
void set_dotprec(unsigned int i)
Set precision for computation of dot products.
friend dotprecision & operator+=(dotprecision &, const dotprecision &) noexcept
Implementation of standard algebraic addition and allocation operation.
friend void rnd(const dotprecision &, real &, rndtype) noexcept
Converting the exact dotprecision value with one rounding into a real value.
dotprecision & operator=(const dotprecision &) noexcept
Implementation of standard assigning operator.
friend std::string & operator>>(std::string &, dotprecision &) noexcept
Implementation of standard input method.
int get_dotprec() const
Get currently set precision for computation of dot products.
void set_k(unsigned int i)
Set precision for computation of dot products.
real get_err() const
Get the current error value (if dot products not computed in maximum precision)
friend idotprecision operator|(const dotprecision &, const dotprecision &) noexcept
Returns the convex hull of the arguments.
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.
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.
dotprecision _dotprecision(const real &d) noexcept