TBCI Numerical high perf. C++ Library 2.8.0
vector.h File Reference
#include "tbci/bvector.h"
#include "tbci/vec_kern_unr_pref.h"
#include "tbci/vec_kern_special.h"
Include dependency graph for vector.h:

Go to the source code of this file.

Classes

class  TVector< T >
 Temporary Base Class Idiom: Class TVector is used for temporary variables. More...
class  TSVector< T >
class  Vector< T >

Macros

#define _SMP_TMPL2V(oper, st, en, a1, a2, a3, a4, a5)
#define _JOB_TMPL2V(oper, st, en, a1, a2, a3, a4, a5)
#define _SMP_TMPL2C(oper, st, en, a1, a2, a3, a4, a5)
#define _JOB_TMPL2C(oper, st, en, a1, a2, a3, a4, a5)
#define _SMP_TMPL3VV(oper, st, en, a1, a2, a3, a4, a5)
#define _JOB_TMPL3VV(oper, st, en, a1, a2, a3, a4, a5)
#define _SMP_TMPL3VC(oper, st, en, a1, a2, a3, a4, a5)
#define _JOB_TMPL3VC(oper, st, en, a1, a2, a3, a4, a5)
#define _SMP_TMPL3CC(oper, st, en, a1, a2, a3, a4, a5)
#define _JOB_TMPL3CC(oper, st, en, a1, a2, a3, a4, a5)
#define _SMP_TMPL4V(oper, st, en, a1, a2, a3, a4, a5)
#define _JOB_TMPL4V(oper, st, en, a1, a2, a3, a4, a5)
#define _SMP_TMPL4C(oper, st, en, a1, a2, a3, a4, a5)
#define _JOB_TMPL4C(oper, st, en, a1, a2, a3, a4, a5)
#define _SMP_TMPL5(oper, st, en, a1, a2, a3, a4, a5)
#define _JOB_TMPL5(oper, st, en, a1, a2, a3, a4, a5)
#define STD_SMP_TEMPLATE(oper, dm, a1, a2, a3, a4, a5, SMP_TMPL, JOB_TMPL, p2, p3)
 Template for parallelized stuff (unary) We need the last argument(s) to uniquely handle cases, where it's a pointer into an array or just a number.
#define STD_SMP_TEMPLATE2V(oper, dm, a1, a2)
#define STD_SMP_TEMPLATE2C(oper, dm, a1, a2)
#define STD_SMP_TEMPLATE3VV(oper, dm, a1, a2, a3)
#define STD_SMP_TEMPLATE3VC(oper, dm, a1, a2, a3)
#define STD_SMP_TEMPLATE3CC(oper, dm, a1, a2, a3)
#define STD_SMP_TEMPLATE4V(oper, dm, a1, a2, a3, a4)
#define STD_SMP_TEMPLATE4C(oper, dm, a1, a2, a3, a4)
#define STD_SMP_TEMPLATE5(oper, dm, a1, a2, a3, a4, a5)
#define COST_VECFABSSQR(d)
#define COST_VECSCALAR(d)

Functions

template<typename T>
STD__ ostream & operator<< (STD__ ostream &os, const TVector< T > &tv)
template<typename T>
void job_vec_vec_add (struct thr_ctrl *tc)
 vec = vec + vec;
template<typename T>
void job_vec_vec_sub (struct thr_ctrl *tc)
 vec = vec - vec;
template<typename T>
void job_vec_add_vec (struct thr_ctrl *tc)
 vec += vec;
template<typename T>
void job_vec_sub_vec (struct thr_ctrl *tc)
 vec -= vec;
template<typename T>
void job_vec_sub_vec_inv (struct thr_ctrl *tc)
 vec -= vec; vec = -vec;
template<typename T>
void job_vec_val_add (struct thr_ctrl *tc)
 vec = vec + val;
template<typename T>
void job_vec_val_sub (struct thr_ctrl *tc)
 vec = vec - val;
template<typename T>
void job_vec_val_mul (struct thr_ctrl *tc)
 vec = vec * val;
template<typename T>
void job_val_vec_mul (struct thr_ctrl *tc)
 vec = val * vec;
template<typename T>
void job_val_vec_add (struct thr_ctrl *tc)
 vec = val + vec;
template<typename T>
void job_val_vec_sub (struct thr_ctrl *tc)
 vec = val - vec;
template<typename T>
void job_val_vec_div (struct thr_ctrl *tc)
 vec = val / vec;
template<typename T>
void job_vec_add_val (struct thr_ctrl *tc)
 vec += val;
template<typename T>
void job_val_add_vec (struct thr_ctrl *tc)
 vec += val;
template<typename T>
void job_vec_sub_val (struct thr_ctrl *tc)
 vec -= val;
template<typename T>
void job_val_sub_vec (struct thr_ctrl *tc)
 vec -= val; vec = -vec;
template<typename T>
void job_vec_mul_val (struct thr_ctrl *tc)
 vec *= val;
template<typename T>
void job_vec_div_val (struct thr_ctrl *tc)
 vec /= val;
template<typename T>
void job_val_div_vec (struct thr_ctrl *tc)
 vec = val/self;
template<typename T>
void job_vec_svc_add (struct thr_ctrl *tc)
 vec = vec + s*vec;
template<typename T>
void job_svc_vec_add (struct thr_ctrl *tc)
 vec = s*vec + vec;
template<typename T>
void job_svc_svc_add (struct thr_ctrl *tc)
 vec = s*vec + s*vec;
template<typename T>
void job_vec_svc_sub (struct thr_ctrl *tc)
 vec = vec - s*vec;
template<typename T>
void job_svc_vec_sub (struct thr_ctrl *tc)
 vec = s*vec - vec;
template<typename T>
void job_svc_svc_sub (struct thr_ctrl *tc)
 vec = s*vec - s*vec;
template<typename T>
void job_vec_add_svc (struct thr_ctrl *tc)
 vec += s*vec;
template<typename T>
void job_vec_sub_svc (struct thr_ctrl *tc)
 vec -= s*vec;
template<typename T>
void job_vec_sub_svc_inv (struct thr_ctrl *tc)
 vec -= s*vec;
template<typename T>
void job_svc_val_add (struct thr_ctrl *tc)
 vec = s*vec + val;
template<typename T>
void job_svc_val_sub (struct thr_ctrl *tc)
 vec = s*vec - val;
template<typename T>
void job_val_svc_add (struct thr_ctrl *tc)
 vec = val + s*vec;
template<typename T>
void job_val_svc_sub (struct thr_ctrl *tc)
 vec = val + s*vec;
template<typename T>
void job_val_svc_div (struct thr_ctrl *tc)
 vec = val / s*vec;
template<typename T>
const TVector< T > & operator+ (const T &a, const TVector< T > &b)
 TV = T + TV Transformed to TV += T.
template<typename T>
const TVector< T > & operator- (const T &a, const TVector< T > &b)
 TV = T - TV Transformed to -TV -= T.
template<typename T>
TSVector< Toperator* (const T &a, const TVector< T > &b)
template<typename T>
TSVector< Toperator/ (const T &a, TVector< T > b)
template<typename T>
TVector< T > & conj (TVector< T > &tv)
template<typename T>
TVector< T > & real (TVector< T > &tv)
template<typename T>
TVector< T > & imag (TVector< T > &tv)
template<typename T>
TVector< Tconj (const Vector< T > &v)
template<typename T>
TVector< Treal (const Vector< T > &v)
template<typename T>
TVector< Timag (const Vector< T > &v)
template<typename T>
double fabssqr (const Vector< T > &v)
template<typename T>
NAMESPACE_END NAMESPACE_CSTD double fabs (const TBCI__ Vector< T > &v)
template<typename T>
T abs (const TBCI__ Vector< T > &v)
template<typename T>
double fabs (TBCI__ TVector< T > tv)
template<typename T>
T abs (TBCI__ TVector< T > tv)
template<typename T>
const TSVector< T > & operator* (const T &f, const TSVector< T > &ts)
template<typename T>
TVector< Toperator+ (const T &v, const TSVector< T > &tsv)
template<typename T>
TVector< Toperator- (const T &v, const TSVector< T > &tsv)
template<typename T>
STD__ ostream & operator<< (STD__ ostream &os, const TSVector< T > &ts)
template<typename T>
double fabssqr (const TSVector< T > &ts)
template<typename T>
NAMESPACE_END NAMESPACE_CSTD double fabs (const TBCI__ TSVector< T > &ts)
template<typename T>
T abs (const TBCI__ TSVector< T > &ts)
template<typename T>
STD__ ostream & operator<< (STD__ ostream &os, const Vector< T > &v)
template<typename T>
void job_vec_dot (struct thr_ctrl *tc)
template<typename T>
T dot (const Vector< T > &a, const Vector< T > &b)
template<typename T>
void job_vec_mult (struct thr_ctrl *tc)
 HOTDECL (template< typename T > bool par_comp(const Vector< T > &v1, const Vector< T > &v2))
 HOTDECL (template< typename T > void par_copy(Vector< T > &v1, const Vector< T > &v2))
template<typename T>
bool par_comp (const Vector< T > &v1, TVector< T > v2)
template<typename T>
bool par_comp (TVector< T > v1, const Vector< T > &v2)
template<typename T>
bool par_comp (TVector< T > v1, TVector< T > v2)
template<typename T>
void par_fill (Vector< T > &vec, vec_fill_fn< T > fn, void *par)
template<typename T>
void job_vec_sum (struct thr_ctrl *tc)
template<typename T>
TVector< Toperator+ (const T &a, const Vector< T > &v)
 TV = T + V.
template<typename T>
TVector< Toperator- (const T &a, const Vector< T > &v)
 TV = T - V.
template<typename T>
TSVector< Toperator* (const T &a, const Vector< T > &b)
template<typename T>
TSVector< Toperator/ (const T &a, const Vector< T > &b)
template<typename T>
void job_vec_fabssqr (struct thr_ctrl *tc)
template<typename T>
double fabssqr (TVector< T > tv)

Detailed Description

header file templated classes TBCI::Vector, TBCI::TVector, TBCI::TSVector


Author
A M Bilgic
Kurt Garloff
Date
1/97

autotoc_md2

Version
Id
vector.h,v 1.56.2.167 2022/11/03 17:28:12 garloff Exp

Definition in file vector.h.

Macro Definition Documentation

◆ _JOB_TMPL2C

#define _JOB_TMPL2C ( oper,
st,
en,
a1,
a2,
a3,
a4,
a5 )
Value:
job_##oper <T>, en-st, a1+st, &a2

Definition at line 598 of file vector.h.

◆ _JOB_TMPL2V

#define _JOB_TMPL2V ( oper,
st,
en,
a1,
a2,
a3,
a4,
a5 )
Value:
job_##oper <T>, en-st, a1+st, a2+st

Definition at line 596 of file vector.h.

◆ _JOB_TMPL3CC

#define _JOB_TMPL3CC ( oper,
st,
en,
a1,
a2,
a3,
a4,
a5 )
Value:
job_##oper <T>, en-st, a1+st, &a2, &a3

Definition at line 604 of file vector.h.

◆ _JOB_TMPL3VC

#define _JOB_TMPL3VC ( oper,
st,
en,
a1,
a2,
a3,
a4,
a5 )
Value:
job_##oper <T>, en-st, a1+st, a2+st, &a3

Definition at line 602 of file vector.h.

◆ _JOB_TMPL3VV

#define _JOB_TMPL3VV ( oper,
st,
en,
a1,
a2,
a3,
a4,
a5 )
Value:
job_##oper <T>, en-st, a1+st, a2+st, a3+st

Definition at line 600 of file vector.h.

◆ _JOB_TMPL4C

#define _JOB_TMPL4C ( oper,
st,
en,
a1,
a2,
a3,
a4,
a5 )
Value:
job_##oper <T>, en-st, a1+st, a2+st, &a3, &a4

Definition at line 608 of file vector.h.

◆ _JOB_TMPL4V

#define _JOB_TMPL4V ( oper,
st,
en,
a1,
a2,
a3,
a4,
a5 )
Value:
job_##oper <T>, en-st, a1+st, a2+st, a3+st, &a4

Definition at line 606 of file vector.h.

◆ _JOB_TMPL5

#define _JOB_TMPL5 ( oper,
st,
en,
a1,
a2,
a3,
a4,
a5 )
Value:
job_##oper <T>, en-st, a1+st, a2+st, a3+st, &a4, &a5

Definition at line 610 of file vector.h.

◆ _SMP_TMPL2C

#define _SMP_TMPL2C ( oper,
st,
en,
a1,
a2,
a3,
a4,
a5 )
Value:
do_##oper <T> (en-st, a1+st, a2)

Definition at line 597 of file vector.h.

◆ _SMP_TMPL2V

#define _SMP_TMPL2V ( oper,
st,
en,
a1,
a2,
a3,
a4,
a5 )
Value:
do_##oper <T> (en-st, a1+st, a2+st)

Definition at line 595 of file vector.h.

◆ _SMP_TMPL3CC

#define _SMP_TMPL3CC ( oper,
st,
en,
a1,
a2,
a3,
a4,
a5 )
Value:
do_##oper <T> (en-st, a1+st, a2, a3)

Definition at line 603 of file vector.h.

◆ _SMP_TMPL3VC

#define _SMP_TMPL3VC ( oper,
st,
en,
a1,
a2,
a3,
a4,
a5 )
Value:
do_##oper <T> (en-st, a1+st, a2+st, a3)

Definition at line 601 of file vector.h.

◆ _SMP_TMPL3VV

#define _SMP_TMPL3VV ( oper,
st,
en,
a1,
a2,
a3,
a4,
a5 )
Value:
do_##oper <T> (en-st, a1+st, a2+st, a3+st)

Definition at line 599 of file vector.h.

◆ _SMP_TMPL4C

#define _SMP_TMPL4C ( oper,
st,
en,
a1,
a2,
a3,
a4,
a5 )
Value:
do_##oper <T> (en-st, a1+st, a2+st, a3, a4)

Definition at line 607 of file vector.h.

◆ _SMP_TMPL4V

#define _SMP_TMPL4V ( oper,
st,
en,
a1,
a2,
a3,
a4,
a5 )
Value:
do_##oper <T> (en-st, a1+st, a2+st, a3+st, a4)

Definition at line 605 of file vector.h.

◆ _SMP_TMPL5

#define _SMP_TMPL5 ( oper,
st,
en,
a1,
a2,
a3,
a4,
a5 )
Value:
do_##oper <T> (en-st, a1+st, a2+st, a3+st, a4, a5)

Definition at line 609 of file vector.h.

◆ COST_VECFABSSQR

#define COST_VECFABSSQR ( d)
Value:
#define COST_LOOP
Definition cost.h:84
#define COST_ADD
Definition cost.h:64
#define COST_UNIT_LOAD
There are several basic operations which are assigned a relative cost: (a good choice is to use twice...
Definition cost.h:40
#define COST_MULT
Definition cost.h:72

Definition at line 2358 of file vector.h.

◆ COST_VECSCALAR

#define COST_VECSCALAR ( d)
Value:

Definition at line 2359 of file vector.h.

◆ STD_SMP_TEMPLATE

#define STD_SMP_TEMPLATE ( oper,
dm,
a1,
a2,
a3,
a4,
a5,
SMP_TMPL,
JOB_TMPL,
p2,
p3 )
Value:
/* use some heuristic to decide for the num of threads */ \
const unsigned n_thr = threads_avail (dm / SMP_VECSLICE2); \
update_n_thr(n_thr); \
if (LIKELY(n_thr < 2)) { \
SMP_TMPL(oper, 0, dm, a1, a2, a3, a4, a5); \
} else { \
PREFETCH_W_MANY(a1, 3); \
p2 \
p3 \
const unsigned long first = slice_offset(2, n_thr, dm, a1); \
unsigned long st, en = first; \
unsigned _t; \
/* smp_barrier(); */ \
/* Start threads */ \
for (_t = 0; _t < n_thr-1; ++_t) { \
st = en; en = slice_offset(_t+2, n_thr, dm, a1); \
thread_start (_t, JOB_TMPL(oper, st, en, a1, a2, a3, a4, a5), (void*)0); \
} \
/* The first slice is handled by the main thread */ \
SMP_TMPL(oper, 0UL, first, a1, a2, a3, a4, a5); \
/* sched_yield (); */ \
/* Wait for the end */ \
for (_t = 0; _t < n_thr-1; ++_t) \
thread_wait (_t); \
}
#define LIKELY(expr)
branch prediction note that we sometimes on purpose mark the unlikely possibility likely and vice ver...
Definition basics.h:100
#define SMP_VECSLICE2
Definition bvector.h:626
void thread_wait(const int thr_no, struct job_output *out)
Definition smp.cc:997
#define threads_avail(x)
Definition smp.h:322

Template for parallelized stuff (unary) We need the last argument(s) to uniquely handle cases, where it's a pointer into an array or just a number.

Definition at line 617 of file vector.h.

◆ STD_SMP_TEMPLATE2C

#define STD_SMP_TEMPLATE2C ( oper,
dm,
a1,
a2 )
Value:
#define NULL
Definition basics.h:250
#define STD_SMP_TEMPLATE(oper, dm, a1, a2, a3, a4, a5, SMP_TMPL, JOB_TMPL, p2, p3)
Template for parallelized stuff (unary) We need the last argument(s) to uniquely handle cases,...
Definition vector.h:617
#define _JOB_TMPL2C(oper, st, en, a1, a2, a3, a4, a5)
Definition vector.h:598
#define _SMP_TMPL2C(oper, st, en, a1, a2, a3, a4, a5)
Definition vector.h:597

Definition at line 646 of file vector.h.

Referenced by ediv(), ediv(), TSMatrix< T >::eval(), TSVector< T >::eval(), Matrix< T >::operator*=(), TVector< T >::operator*=(), operator+(), operator+(), TMatrix< T >::operator+=(), TVector< T >::operator+=(), operator-(), operator-(), TMatrix< T >::operator-=(), TVector< T >::operator-=(), and Matrix< T >::operator/=().

◆ STD_SMP_TEMPLATE2V

#define STD_SMP_TEMPLATE2V ( oper,
dm,
a1,
a2 )
Value:
#define PREFETCH_R_MANY(addr, loc)
Definition basics.h:764
#define _SMP_TMPL2V(oper, st, en, a1, a2, a3, a4, a5)
Definition vector.h:595
#define _JOB_TMPL2V(oper, st, en, a1, a2, a3, a4, a5)
Definition vector.h:596

Definition at line 644 of file vector.h.

Referenced by Matrix< T >::operator+(), TVector< T >::operator+(), Vector< T >::operator+(), TMatrix< T >::operator+=(), TVector< T >::operator+=(), Matrix< T >::operator-(), TVector< T >::operator-(), Vector< T >::operator-(), TMatrix< T >::operator-=(), and TVector< T >::operator-=().

◆ STD_SMP_TEMPLATE3CC

#define STD_SMP_TEMPLATE3CC ( oper,
dm,
a1,
a2,
a3 )
Value:
STD_SMP_TEMPLATE(oper, dm, a1, a2, a3, NULL, NULL, _SMP_TMPL3CC, _JOB_TMPL3CC,,)
#define _SMP_TMPL3CC(oper, st, en, a1, a2, a3, a4, a5)
Definition vector.h:603
#define _JOB_TMPL3CC(oper, st, en, a1, a2, a3, a4, a5)
Definition vector.h:604

Definition at line 652 of file vector.h.

◆ STD_SMP_TEMPLATE3VC

◆ STD_SMP_TEMPLATE3VV

#define STD_SMP_TEMPLATE3VV ( oper,
dm,
a1,
a2,
a3 )
Value:
#define _JOB_TMPL3VV(oper, st, en, a1, a2, a3, a4, a5)
Definition vector.h:600
#define _SMP_TMPL3VV(oper, st, en, a1, a2, a3, a4, a5)
Definition vector.h:599

Definition at line 648 of file vector.h.

Referenced by Matrix< T >::operator+(), Vector< T >::operator+(), Matrix< T >::operator-(), and Vector< T >::operator-().

◆ STD_SMP_TEMPLATE4C

#define STD_SMP_TEMPLATE4C ( oper,
dm,
a1,
a2,
a3,
a4 )
Value:
STD_SMP_TEMPLATE(oper, dm, a1, a2, a3, a4, NULL, _SMP_TMPL4C, _JOB_TMPL4C, PREFETCH_R_MANY(a2,2);,)
#define _SMP_TMPL4C(oper, st, en, a1, a2, a3, a4, a5)
Definition vector.h:607
#define _JOB_TMPL4C(oper, st, en, a1, a2, a3, a4, a5)
Definition vector.h:608

Definition at line 656 of file vector.h.

Referenced by TSVector< T >::add_t_tsv(), ediv(), ediv(), operator+(), TSMatrix< T >::operator+(), TSVector< T >::operator+(), operator-(), TSMatrix< T >::operator-(), TSVector< T >::operator-(), and TSVector< T >::sub_t_tsv().

◆ STD_SMP_TEMPLATE4V

#define STD_SMP_TEMPLATE4V ( oper,
dm,
a1,
a2,
a3,
a4 )
Value:
STD_SMP_TEMPLATE(oper, dm, a1, a2, a3, a4, NULL, _SMP_TMPL4V, _JOB_TMPL4V, PREFETCH_R_MANY(a2,2);,)
#define _SMP_TMPL4V(oper, st, en, a1, a2, a3, a4, a5)
Definition vector.h:605
#define _JOB_TMPL4V(oper, st, en, a1, a2, a3, a4, a5)
Definition vector.h:606

Definition at line 654 of file vector.h.

Referenced by Matrix< T >::operator+(), TSMatrix< T >::operator+(), TSVector< T >::operator+(), Vector< T >::operator+(), Matrix< T >::operator-(), TSMatrix< T >::operator-(), TSVector< T >::operator-(), and Vector< T >::operator-().

◆ STD_SMP_TEMPLATE5

#define STD_SMP_TEMPLATE5 ( oper,
dm,
a1,
a2,
a3,
a4,
a5 )
Value:
STD_SMP_TEMPLATE(oper, dm, a1, a2, a3, a4, a5, _SMP_TMPL5, _JOB_TMPL5, PREFETCH_R_MANY(a2,2);, PREFETCH_R_MANY(a3,2);)
#define _SMP_TMPL5(oper, st, en, a1, a2, a3, a4, a5)
Definition vector.h:609
#define _JOB_TMPL5(oper, st, en, a1, a2, a3, a4, a5)
Definition vector.h:610

Definition at line 658 of file vector.h.

Referenced by TSMatrix< T >::operator+(), TSVector< T >::operator+(), TSMatrix< T >::operator-(), and TSVector< T >::operator-().

Function Documentation

◆ abs() [1/3]

template<typename T>
T abs ( const TBCI__ TSVector< T > & ts)
inline

Definition at line 1493 of file vector.h.

References abs, T, TBCI__, and ts.

◆ abs() [2/3]

template<typename T>
T abs ( const TBCI__ Vector< T > & v)
inline

Definition at line 997 of file vector.h.

References abs, T, and TBCI__.

◆ abs() [3/3]

template<typename T>
T abs ( TBCI__ TVector< T > tv)
inline

Definition at line 1011 of file vector.h.

References abs, T, and TBCI__.

◆ conj() [1/2]

template<typename T>
TVector< T > conj ( const Vector< T > & v)
inline

Definition at line 891 of file vector.h.

References conj(), i, REGISTER, TVector< T >::set(), and TVector< T >::size().

◆ conj() [2/2]

template<typename T>
TVector< T > & conj ( TVector< T > & tv)
inline

Definition at line 862 of file vector.h.

References conj(), TVector< T >::get(), i, REGISTER, TVector< T >::set(), and TVector< T >::size().

Referenced by TVector< T >::FGD, and TVector< T >::FGD.

◆ dot()

template<typename T>
T dot ( const Vector< T > & a,
const Vector< T > & b )
inline

◆ fabs() [1/3]

template<typename T>
NAMESPACE_END NAMESPACE_CSTD double fabs ( const TBCI__ TSVector< T > & ts)
inline

Definition at line 1488 of file vector.h.

References fabs(), TBCI__, and ts.

◆ fabs() [2/3]

template<typename T>
NAMESPACE_END NAMESPACE_CSTD double fabs ( const TBCI__ Vector< T > & v)
inline

Definition at line 990 of file vector.h.

References fabs(), fabssqr(), sqrt(), and TBCI__.

Referenced by fabs().

◆ fabs() [3/3]

template<typename T>
double fabs ( TBCI__ TVector< T > tv)
inline

Definition at line 1004 of file vector.h.

References fabs(), fabs(), and TBCI__.

◆ fabssqr() [1/3]

template<typename T>
double fabssqr ( const TSVector< T > & ts)

Definition at line 1479 of file vector.h.

References fabssqr(), and ts.

◆ fabssqr() [2/3]

template<typename T>
double fabssqr ( const Vector< T > & v)
inline

Definition at line 2365 of file vector.h.

References fabssqr(), and Vector< T >::fabssqr().

Referenced by operator/().

◆ fabssqr() [3/3]

template<typename T>
double fabssqr ( TVector< T > tv)
inline

Definition at line 2449 of file vector.h.

References fabssqr(), and TVector< T >::fabssqr().

◆ HOTDECL() [1/2]

HOTDECL ( template< typename T > bool par_compconst Vector< T > &v1, const Vector< T > &v2)

◆ HOTDECL() [2/2]

HOTDECL ( template< typename T > void par_copyVector< T > &v1, const Vector< T > &v2)

◆ imag() [1/2]

template<typename T>
TVector< T > imag ( const Vector< T > & v)
inline

Definition at line 912 of file vector.h.

References i, imag(), REGISTER, TVector< T >::set(), and TVector< T >::size().

◆ imag() [2/2]

template<typename T>
TVector< T > & imag ( TVector< T > & tv)
inline

Definition at line 881 of file vector.h.

References TVector< T >::get(), i, imag(), REGISTER, TVector< T >::set(), and TVector< T >::size().

Referenced by TVector< T >::FGD, and TVector< T >::FGD.

◆ job_svc_svc_add()

template<typename T>
void job_svc_svc_add ( struct thr_ctrl * tc)

vec = s*vec + s*vec;

Definition at line 455 of file vector.h.

References job_svc_svc_add(), T, thr_ctrl::t_par, and thr_ctrl::t_size.

Referenced by job_svc_svc_add().

◆ job_svc_svc_sub()

template<typename T>
void job_svc_svc_sub ( struct thr_ctrl * tc)

vec = s*vec - s*vec;

Definition at line 482 of file vector.h.

References job_svc_svc_sub(), T, thr_ctrl::t_par, and thr_ctrl::t_size.

Referenced by job_svc_svc_sub().

◆ job_svc_val_add()

template<typename T>
void job_svc_val_add ( struct thr_ctrl * tc)

vec = s*vec + val;

Definition at line 519 of file vector.h.

References job_svc_val_add(), T, thr_ctrl::t_par, and thr_ctrl::t_size.

Referenced by job_svc_val_add().

◆ job_svc_val_sub()

template<typename T>
void job_svc_val_sub ( struct thr_ctrl * tc)

vec = s*vec - val;

Definition at line 528 of file vector.h.

References job_svc_val_sub(), T, thr_ctrl::t_par, and thr_ctrl::t_size.

Referenced by job_svc_val_sub().

◆ job_svc_vec_add()

template<typename T>
void job_svc_vec_add ( struct thr_ctrl * tc)

vec = s*vec + vec;

Definition at line 446 of file vector.h.

References job_svc_vec_add(), T, thr_ctrl::t_par, and thr_ctrl::t_size.

Referenced by job_svc_vec_add().

◆ job_svc_vec_sub()

template<typename T>
void job_svc_vec_sub ( struct thr_ctrl * tc)

vec = s*vec - vec;

Definition at line 473 of file vector.h.

References job_svc_vec_sub(), T, thr_ctrl::t_par, and thr_ctrl::t_size.

Referenced by job_svc_vec_sub().

◆ job_val_add_vec()

template<typename T>
void job_val_add_vec ( struct thr_ctrl * tc)

vec += val;

Definition at line 387 of file vector.h.

References job_val_add_vec(), T, thr_ctrl::t_par, and thr_ctrl::t_size.

Referenced by job_val_add_vec().

◆ job_val_div_vec()

template<typename T>
void job_val_div_vec ( struct thr_ctrl * tc)

vec = val/self;

Definition at line 427 of file vector.h.

References job_val_div_vec(), T, thr_ctrl::t_par, and thr_ctrl::t_size.

Referenced by job_val_div_vec().

◆ job_val_sub_vec()

template<typename T>
void job_val_sub_vec ( struct thr_ctrl * tc)

vec -= val; vec = -vec;

Definition at line 403 of file vector.h.

References job_val_sub_vec(), T, thr_ctrl::t_par, and thr_ctrl::t_size.

Referenced by job_val_sub_vec().

◆ job_val_svc_add()

template<typename T>
void job_val_svc_add ( struct thr_ctrl * tc)

vec = val + s*vec;

Definition at line 537 of file vector.h.

References job_val_svc_add(), T, thr_ctrl::t_par, and thr_ctrl::t_size.

Referenced by job_val_svc_add().

◆ job_val_svc_div()

template<typename T>
void job_val_svc_div ( struct thr_ctrl * tc)

vec = val / s*vec;

Definition at line 555 of file vector.h.

References job_val_svc_div(), T, thr_ctrl::t_par, and thr_ctrl::t_size.

Referenced by job_val_svc_div().

◆ job_val_svc_sub()

template<typename T>
void job_val_svc_sub ( struct thr_ctrl * tc)

vec = val + s*vec;

Definition at line 546 of file vector.h.

References job_val_svc_sub(), T, thr_ctrl::t_par, and thr_ctrl::t_size.

Referenced by job_val_svc_sub().

◆ job_val_vec_add()

template<typename T>
void job_val_vec_add ( struct thr_ctrl * tc)

vec = val + vec;

Definition at line 355 of file vector.h.

References job_val_vec_add(), T, thr_ctrl::t_par, and thr_ctrl::t_size.

Referenced by job_val_vec_add().

◆ job_val_vec_div()

template<typename T>
void job_val_vec_div ( struct thr_ctrl * tc)

vec = val / vec;

Definition at line 371 of file vector.h.

References job_val_vec_div(), T, thr_ctrl::t_par, and thr_ctrl::t_size.

Referenced by job_val_vec_div().

◆ job_val_vec_mul()

template<typename T>
void job_val_vec_mul ( struct thr_ctrl * tc)

vec = val * vec;

Definition at line 347 of file vector.h.

References job_val_vec_mul(), T, thr_ctrl::t_par, and thr_ctrl::t_size.

Referenced by job_val_vec_mul().

◆ job_val_vec_sub()

template<typename T>
void job_val_vec_sub ( struct thr_ctrl * tc)

vec = val - vec;

Definition at line 363 of file vector.h.

References job_val_vec_sub(), T, thr_ctrl::t_par, and thr_ctrl::t_size.

Referenced by job_val_vec_sub().

◆ job_vec_add_svc()

template<typename T>
void job_vec_add_svc ( struct thr_ctrl * tc)

vec += s*vec;

Definition at line 491 of file vector.h.

References job_vec_add_svc(), T, thr_ctrl::t_par, and thr_ctrl::t_size.

Referenced by job_vec_add_svc().

◆ job_vec_add_val()

template<typename T>
void job_vec_add_val ( struct thr_ctrl * tc)

vec += val;

Definition at line 379 of file vector.h.

References job_vec_add_val(), T, thr_ctrl::t_par, and thr_ctrl::t_size.

Referenced by job_vec_add_val().

◆ job_vec_add_vec()

template<typename T>
void job_vec_add_vec ( struct thr_ctrl * tc)

vec += vec;

Definition at line 299 of file vector.h.

References job_vec_add_vec(), T, thr_ctrl::t_par, and thr_ctrl::t_size.

Referenced by job_vec_add_vec().

◆ job_vec_div_val()

template<typename T>
void job_vec_div_val ( struct thr_ctrl * tc)

vec /= val;

Definition at line 419 of file vector.h.

References job_vec_div_val(), T, thr_ctrl::t_par, and thr_ctrl::t_size.

Referenced by job_vec_div_val().

◆ job_vec_dot()

template<typename T>
void job_vec_dot ( struct thr_ctrl * tc)

Definition at line 1802 of file vector.h.

References do_exactsum(), job_vec_dot(), T, thr_ctrl::t_par, thr_ctrl::t_res_ptr, and thr_ctrl::t_size.

Referenced by dot(), and job_vec_dot().

◆ job_vec_fabssqr()

template<typename T>
void job_vec_fabssqr ( struct thr_ctrl * tc)

◆ job_vec_mul_val()

template<typename T>
void job_vec_mul_val ( struct thr_ctrl * tc)

vec *= val;

Definition at line 411 of file vector.h.

References job_vec_mul_val(), T, thr_ctrl::t_par, and thr_ctrl::t_size.

Referenced by job_vec_mul_val().

◆ job_vec_mult()

template<typename T>
void job_vec_mult ( struct thr_ctrl * tc)

Definition at line 1889 of file vector.h.

References do_exactsum(), job_vec_mult(), T, thr_ctrl::t_par, and thr_ctrl::t_size.

Referenced by job_vec_mult(), and Vector< T >::operator*().

◆ job_vec_sub_svc()

template<typename T>
void job_vec_sub_svc ( struct thr_ctrl * tc)

vec -= s*vec;

Definition at line 500 of file vector.h.

References job_vec_sub_svc(), T, thr_ctrl::t_par, and thr_ctrl::t_size.

Referenced by job_vec_sub_svc().

◆ job_vec_sub_svc_inv()

template<typename T>
void job_vec_sub_svc_inv ( struct thr_ctrl * tc)

vec -= s*vec;

Definition at line 509 of file vector.h.

References job_vec_sub_svc_inv(), T, thr_ctrl::t_par, and thr_ctrl::t_size.

Referenced by job_vec_sub_svc_inv().

◆ job_vec_sub_val()

template<typename T>
void job_vec_sub_val ( struct thr_ctrl * tc)

vec -= val;

Definition at line 395 of file vector.h.

References job_vec_sub_val(), T, thr_ctrl::t_par, and thr_ctrl::t_size.

Referenced by job_vec_sub_val().

◆ job_vec_sub_vec()

template<typename T>
void job_vec_sub_vec ( struct thr_ctrl * tc)

vec -= vec;

Definition at line 307 of file vector.h.

References job_vec_sub_vec(), T, thr_ctrl::t_par, and thr_ctrl::t_size.

Referenced by job_vec_sub_vec().

◆ job_vec_sub_vec_inv()

template<typename T>
void job_vec_sub_vec_inv ( struct thr_ctrl * tc)

vec -= vec; vec = -vec;

Definition at line 315 of file vector.h.

References job_vec_sub_vec_inv(), T, thr_ctrl::t_par, and thr_ctrl::t_size.

Referenced by job_vec_sub_vec_inv().

◆ job_vec_sum()

template<typename T>
void job_vec_sum ( struct thr_ctrl * tc)

Definition at line 2086 of file vector.h.

References do_exactsum(), T, thr_ctrl::t_par, and thr_ctrl::t_size.

Referenced by Vector< T >::sum().

◆ job_vec_svc_add()

template<typename T>
void job_vec_svc_add ( struct thr_ctrl * tc)

vec = vec + s*vec;

Definition at line 437 of file vector.h.

References job_vec_svc_add(), T, thr_ctrl::t_par, and thr_ctrl::t_size.

Referenced by job_vec_svc_add().

◆ job_vec_svc_sub()

template<typename T>
void job_vec_svc_sub ( struct thr_ctrl * tc)

vec = vec - s*vec;

Definition at line 464 of file vector.h.

References job_vec_svc_sub(), T, thr_ctrl::t_par, and thr_ctrl::t_size.

Referenced by job_vec_svc_sub().

◆ job_vec_val_add()

template<typename T>
void job_vec_val_add ( struct thr_ctrl * tc)

vec = vec + val;

Definition at line 323 of file vector.h.

References job_vec_val_add(), T, thr_ctrl::t_par, and thr_ctrl::t_size.

Referenced by job_vec_val_add().

◆ job_vec_val_mul()

template<typename T>
void job_vec_val_mul ( struct thr_ctrl * tc)

vec = vec * val;

Definition at line 339 of file vector.h.

References job_vec_val_mul(), T, thr_ctrl::t_par, and thr_ctrl::t_size.

Referenced by job_vec_val_mul().

◆ job_vec_val_sub()

template<typename T>
void job_vec_val_sub ( struct thr_ctrl * tc)

vec = vec - val;

Definition at line 331 of file vector.h.

References job_vec_val_sub(), T, thr_ctrl::t_par, and thr_ctrl::t_size.

Referenced by job_vec_val_sub().

◆ job_vec_vec_add()

template<typename T>
void job_vec_vec_add ( struct thr_ctrl * tc)

vec = vec + vec;

Definition at line 283 of file vector.h.

References job_vec_vec_add(), T, thr_ctrl::t_par, and thr_ctrl::t_size.

Referenced by job_vec_vec_add().

◆ job_vec_vec_sub()

template<typename T>
void job_vec_vec_sub ( struct thr_ctrl * tc)

vec = vec - vec;

Definition at line 291 of file vector.h.

References job_vec_vec_sub(), T, thr_ctrl::t_par, and thr_ctrl::t_size.

Referenced by job_vec_vec_sub().

◆ operator*() [1/3]

template<typename T>
TSVector< T > operator* ( const T & a,
const TVector< T > & b )
inline

Definition at line 801 of file vector.h.

References a, b, and T.

◆ operator*() [2/3]

template<typename T>
TSVector< T > operator* ( const T & a,
const Vector< T > & b )
inline

Definition at line 2308 of file vector.h.

References a, b, and T.

◆ operator*() [3/3]

template<typename T>
const TSVector< T > & operator* ( const T & f,
const TSVector< T > & ts )

Definition at line 1196 of file vector.h.

References T, and ts.

◆ operator+() [1/3]

template<typename T>
const TVector< T > & operator+ ( const T & a,
const TVector< T > & b )
inline

TV = T + TV Transformed to TV += T.

Definition at line 777 of file vector.h.

References a, b, BdMatrix< T >::dim, STD_SMP_TEMPLATE2C, and T.

◆ operator+() [2/3]

template<typename T>
TVector< T > operator+ ( const T & a,
const Vector< T > & v )
inline

◆ operator+() [3/3]

template<typename T>
TVector< T > operator+ ( const T & v,
const TSVector< T > & tsv )
inline

Definition at line 1435 of file vector.h.

References TSVector< T >::add_t_tsv(), and T.

◆ operator-() [1/3]

template<typename T>
const TVector< T > & operator- ( const T & a,
const TVector< T > & b )
inline

TV = T - TV Transformed to -TV -= T.

Definition at line 789 of file vector.h.

References a, b, BdMatrix< T >::dim, STD_SMP_TEMPLATE2C, and T.

◆ operator-() [2/3]

template<typename T>
TVector< T > operator- ( const T & a,
const Vector< T > & v )
inline

◆ operator-() [3/3]

template<typename T>
TVector< T > operator- ( const T & v,
const TSVector< T > & tsv )
inline

Definition at line 1455 of file vector.h.

References TSVector< T >::sub_t_tsv(), and T.

◆ operator/() [1/2]

template<typename T>
TSVector< T > operator/ ( const T & a,
const Vector< T > & b )

Definition at line 2318 of file vector.h.

References a, b, BCHK, fabssqr(), norm(), and T.

◆ operator/() [2/2]

template<typename T>
TSVector< T > operator/ ( const T & a,
TVector< T > b )
inline

Definition at line 812 of file vector.h.

References a, b, BCHK, norm(), and T.

◆ operator<<() [1/3]

template<typename T>
STD__ ostream & operator<< ( STD__ ostream & os,
const TSVector< T > & ts )

Definition at line 1459 of file vector.h.

References i, STD__, and ts.

◆ operator<<() [2/3]

template<typename T>
STD__ ostream & operator<< ( STD__ ostream & os,
const TVector< T > & tv )
inline

Definition at line 253 of file vector.h.

References STD__.

◆ operator<<() [3/3]

template<typename T>
STD__ ostream & operator<< ( STD__ ostream & os,
const Vector< T > & v )
inline

Definition at line 1681 of file vector.h.

References STD__.

◆ par_comp() [1/3]

template<typename T>
bool par_comp ( const Vector< T > & v1,
TVector< T > v2 )
inline

Definition at line 1996 of file vector.h.

References par_comp().

Referenced by HOTDECL(), par_comp(), par_comp(), and par_comp().

◆ par_comp() [2/3]

template<typename T>
bool par_comp ( TVector< T > v1,
const Vector< T > & v2 )
inline

Definition at line 2003 of file vector.h.

References par_comp().

◆ par_comp() [3/3]

template<typename T>
bool par_comp ( TVector< T > v1,
TVector< T > v2 )
inline

Definition at line 2009 of file vector.h.

References par_comp().

◆ par_fill()

template<typename T>
void par_fill ( Vector< T > & vec,
vec_fill_fn< T > fn,
void * par )
inline

Definition at line 2015 of file vector.h.

References TSVector< T >::dim, and TSVector< T >::vec.

◆ real() [1/2]

template<typename T>
TVector< T > real ( const Vector< T > & v)
inline

Definition at line 901 of file vector.h.

References i, real, REGISTER, TVector< T >::set(), and TVector< T >::size().

◆ real() [2/2]

template<typename T>
TVector< T > & real ( TVector< T > & tv)
inline

Definition at line 871 of file vector.h.

References TVector< T >::get(), i, real, REGISTER, TVector< T >::set(), and TVector< T >::size().

Referenced by TVector< T >::FGD, and TVector< T >::FGD.