#include "bvector.h"#include "vec_kern_unr_pref.h"#include "vec_kern_special.h"


Go to the source code of this file.
Namespaces | |
| namespace | TBCI |
| namespace | std |
Classes | |
| class | TBCI::TVector< T > |
| Temporary Base Class Idiom: Class TVector is used for temporary variables. More... | |
| class | TBCI::TSVector< T > |
| class | TBCI::Vector< T > |
Defines | |
| #define | SMP_VECSLICE 16384 |
| #define | _SMP_TMPL2V(oper, st, en, a1, a2, a3, a4, a5) do_##oper <T> (en-st, a1+st, a2+st) |
| #define | _JOB_TMPL2V(oper, st, en, a1, a2, a3, a4, a5) job_##oper <T>, en-st, a1+st, a2+st |
| #define | _SMP_TMPL2C(oper, st, en, a1, a2, a3, a4, a5) do_##oper <T> (en-st, a1+st, a2) |
| #define | _JOB_TMPL2C(oper, st, en, a1, a2, a3, a4, a5) job_##oper <T>, en-st, a1+st, &a2 |
| #define | _SMP_TMPL3VV(oper, st, en, a1, a2, a3, a4, a5) do_##oper <T> (en-st, a1+st, a2+st, a3+st) |
| #define | _JOB_TMPL3VV(oper, st, en, a1, a2, a3, a4, a5) job_##oper <T>, en-st, a1+st, a2+st, a3+st |
| #define | _SMP_TMPL3VC(oper, st, en, a1, a2, a3, a4, a5) do_##oper <T> (en-st, a1+st, a2+st, a3) |
| #define | _JOB_TMPL3VC(oper, st, en, a1, a2, a3, a4, a5) job_##oper <T>, en-st, a1+st, a2+st, &a3 |
| #define | _SMP_TMPL3CC(oper, st, en, a1, a2, a3, a4, a5) do_##oper <T> (en-st, a1+st, a2, a3) |
| #define | _JOB_TMPL3CC(oper, st, en, a1, a2, a3, a4, a5) job_##oper <T>, en-st, a1+st, &a2, &a3 |
| #define | _SMP_TMPL4V(oper, st, en, a1, a2, a3, a4, a5) do_##oper <T> (en-st, a1+st, a2+st, a3+st, a4) |
| #define | _JOB_TMPL4V(oper, st, en, a1, a2, a3, a4, a5) job_##oper <T>, en-st, a1+st, a2+st, a3+st, &a4 |
| #define | _SMP_TMPL4C(oper, st, en, a1, a2, a3, a4, a5) do_##oper <T> (en-st, a1+st, a2+st, a3, a4) |
| #define | _JOB_TMPL4C(oper, st, en, a1, a2, a3, a4, a5) job_##oper <T>, en-st, a1+st, a2+st, &a3, &a4 |
| #define | _SMP_TMPL5(oper, st, en, a1, a2, a3, a4, a5) do_##oper <T> (en-st, a1+st, a2+st, a3+st, a4, a5) |
| #define | _JOB_TMPL5(oper, st, en, a1, a2, a3, a4, a5) job_##oper <T>, en-st, a1+st, a2+st, a3+st, &a4, &a5 |
| #define | STD_SMP_TEMPLATE(oper, dm, a1, a2, a3, a4, a5, SMP_TMPL, JOB_TMPL) |
| 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) STD_SMP_TEMPLATE(oper, dm, a1, a2, X, X, X, _SMP_TMPL2V, _JOB_TMPL2V) |
| #define | STD_SMP_TEMPLATE2C(oper, dm, a1, a2) STD_SMP_TEMPLATE(oper, dm, a1, a2, X, X, X, _SMP_TMPL2C, _JOB_TMPL2C) |
| #define | STD_SMP_TEMPLATE3VV(oper, dm, a1, a2, a3) STD_SMP_TEMPLATE(oper, dm, a1, a2, a3, X, X, _SMP_TMPL3VV, _JOB_TMPL3VV) |
| #define | STD_SMP_TEMPLATE3VC(oper, dm, a1, a2, a3) STD_SMP_TEMPLATE(oper, dm, a1, a2, a3, X, X, _SMP_TMPL3VC, _JOB_TMPL3VC) |
| #define | STD_SMP_TEMPLATE3CC(oper, dm, a1, a2, a3) STD_SMP_TEMPLATE(oper, dm, a1, a2, a3, X, X, _SMP_TMPL3CC, _JOB_TMPL3CC) |
| #define | STD_SMP_TEMPLATE4V(oper, dm, a1, a2, a3, a4) STD_SMP_TEMPLATE(oper, dm, a1, a2, a3, a4, X, _SMP_TMPL4V, _JOB_TMPL4V) |
| #define | STD_SMP_TEMPLATE4C(oper, dm, a1, a2, a3, a4) STD_SMP_TEMPLATE(oper, dm, a1, a2, a3, a4, X, _SMP_TMPL4C, _JOB_TMPL4C) |
| #define | STD_SMP_TEMPLATE5(oper, dm, a1, a2, a3, a4, a5) STD_SMP_TEMPLATE(oper, dm, a1, a2, a3, a4, a5, _SMP_TMPL5, _JOB_TMPL5) |
| #define | COST_VECFABSSQR(d) (d*(COST_UNIT_LOAD+COST_MULT+COST_ADD+COST_LOOP)) |
| #define | COST_VECSCALAR(d) (d*(2*COST_UNIT_LOAD+COST_MULT+COST_ADD+COST_LOOP)) |
Functions | |
| template<typename T> | |
| std::ostream & | TBCI::operator<< (std::ostream &os, const TVector< T > &tv) |
| template<typename T> | |
| void | TBCI::job_vec_vec_add (struct thr_ctrl *tc) |
| vec = vec + vec; | |
| template<typename T> | |
| void | TBCI::job_vec_vec_sub (struct thr_ctrl *tc) |
| vec = vec - vec; | |
| template<typename T> | |
| void | TBCI::job_vec_add_vec (struct thr_ctrl *tc) |
| vec += vec; | |
| template<typename T> | |
| void | TBCI::job_vec_sub_vec (struct thr_ctrl *tc) |
| vec -= vec; | |
| template<typename T> | |
| void | TBCI::job_vec_sub_vec_inv (struct thr_ctrl *tc) |
| vec -= vec; vec = -vec; | |
| template<typename T> | |
| void | TBCI::job_vec_val_add (struct thr_ctrl *tc) |
| vec = vec + val; | |
| template<typename T> | |
| void | TBCI::job_vec_val_sub (struct thr_ctrl *tc) |
| vec = vec - val; | |
| template<typename T> | |
| void | TBCI::job_vec_val_mul (struct thr_ctrl *tc) |
| vec = vec * val; | |
| template<typename T> | |
| void | TBCI::job_val_vec_mul (struct thr_ctrl *tc) |
| vec = val * vec; | |
| template<typename T> | |
| void | TBCI::job_val_vec_add (struct thr_ctrl *tc) |
| vec = val + vec; | |
| template<typename T> | |
| void | TBCI::job_val_vec_sub (struct thr_ctrl *tc) |
| vec = val - vec; | |
| template<typename T> | |
| void | TBCI::job_val_vec_div (struct thr_ctrl *tc) |
| vec = val / vec; | |
| template<typename T> | |
| void | TBCI::job_vec_add_val (struct thr_ctrl *tc) |
| vec += val; | |
| template<typename T> | |
| void | TBCI::job_val_add_vec (struct thr_ctrl *tc) |
| vec += val; | |
| template<typename T> | |
| void | TBCI::job_vec_sub_val (struct thr_ctrl *tc) |
| vec -= val; | |
| template<typename T> | |
| void | TBCI::job_val_sub_vec (struct thr_ctrl *tc) |
| vec -= val; vec = -vec; | |
| template<typename T> | |
| void | TBCI::job_vec_mul_val (struct thr_ctrl *tc) |
| vec *= val; | |
| template<typename T> | |
| void | TBCI::job_vec_div_val (struct thr_ctrl *tc) |
| vec /= val; | |
| template<typename T> | |
| void | TBCI::job_val_div_vec (struct thr_ctrl *tc) |
| vec = val/self; | |
| template<typename T> | |
| void | TBCI::job_vec_svc_add (struct thr_ctrl *tc) |
| vec = vec + s*vec; | |
| template<typename T> | |
| void | TBCI::job_svc_vec_add (struct thr_ctrl *tc) |
| vec = s*vec + vec; | |
| template<typename T> | |
| void | TBCI::job_svc_svc_add (struct thr_ctrl *tc) |
| vec = s*vec + s*vec; | |
| template<typename T> | |
| void | TBCI::job_vec_svc_sub (struct thr_ctrl *tc) |
| vec = vec - s*vec; | |
| template<typename T> | |
| void | TBCI::job_svc_vec_sub (struct thr_ctrl *tc) |
| vec = s*vec - vec; | |
| template<typename T> | |
| void | TBCI::job_svc_svc_sub (struct thr_ctrl *tc) |
| vec = s*vec - s*vec; | |
| template<typename T> | |
| void | TBCI::job_vec_add_svc (struct thr_ctrl *tc) |
| vec += s*vec; | |
| template<typename T> | |
| void | TBCI::job_vec_sub_svc (struct thr_ctrl *tc) |
| vec -= s*vec; | |
| template<typename T> | |
| void | TBCI::job_vec_sub_svc_inv (struct thr_ctrl *tc) |
| vec -= s*vec; | |
| template<typename T> | |
| void | TBCI::job_svc_val_add (struct thr_ctrl *tc) |
| vec = s*vec + val; | |
| template<typename T> | |
| void | TBCI::job_svc_val_sub (struct thr_ctrl *tc) |
| vec = s*vec - val; | |
| template<typename T> | |
| void | TBCI::job_val_svc_add (struct thr_ctrl *tc) |
| vec = val + s*vec; | |
| template<typename T> | |
| void | TBCI::job_val_svc_sub (struct thr_ctrl *tc) |
| vec = val + s*vec; | |
| template<typename T> | |
| void | TBCI::job_val_svc_div (struct thr_ctrl *tc) |
| vec = val / s*vec; | |
| template<typename T> | |
| const TVector< T > & | TBCI::operator+ (const T &a, const TVector< T > &b) |
| TV = T + TV Transformed to TV += T. | |
| template<typename T> | |
| const TVector< T > & | TBCI::operator- (const T &a, const TVector< T > &b) |
| TV = T - TV Transformed to -TV -= T. | |
| template<typename T> | |
| TSVector< T > | TBCI::operator* (const T &a, const TVector< T > &b) |
| template<typename T> | |
| TSVector< T > | TBCI::operator/ (const T &a, TVector< T > b) |
| template<typename T> | |
| TVector< T > & | TBCI::conj (TVector< T > &tv) |
| template<typename T> | |
| TVector< T > & | TBCI::real (TVector< T > &tv) |
| template<typename T> | |
| TVector< T > & | TBCI::imag (TVector< T > &tv) |
| template<typename T> | |
| TVector< T > | TBCI::conj (const Vector< T > &v) |
| template<typename T> | |
| TVector< T > | TBCI::real (const Vector< T > &v) |
| template<typename T> | |
| TVector< T > | TBCI::imag (const Vector< T > &v) |
| template<typename T> | |
| double | TBCI::fabssqr (const Vector< T > &v) |
| template<typename T> | |
| double | std::fabs (const TBCI::Vector< T > &v) |
| template<typename T> | |
| T | std::abs (const TBCI::Vector< T > &v) |
| template<typename T> | |
| double | std::fabs (TBCI::TVector< T > tv) |
| template<typename T> | |
| T | std::abs (TBCI::TVector< T > tv) |
| template<typename T> | |
| const TSVector< T > & | TBCI::operator* (const T &f, const TSVector< T > &ts) |
| template<typename T> | |
| TVector< T > | TBCI::operator+ (const T &v, const TSVector< T > &tsv) |
| template<typename T> | |
| TVector< T > | TBCI::operator- (const T &v, const TSVector< T > &tsv) |
| template<typename T> | |
| std::ostream & | TBCI::operator<< (std::ostream &os, const TSVector< T > &ts) |
| template<typename T> | |
| double | TBCI::fabssqr (const TSVector< T > &ts) |
| template<typename T> | |
| double | std::fabs (const TBCI::TSVector< T > &ts) |
| template<typename T> | |
| T | std::abs (const TBCI::TSVector< T > &ts) |
| template<typename T> | |
| std::ostream & | TBCI::operator<< (std::ostream &os, const Vector< T > &v) |
| template<typename T> | |
| void | TBCI::job_vec_dot (struct thr_ctrl *tc) |
| template<typename T> | |
| void | TBCI::job_vec_mult (struct thr_ctrl *tc) |
| template<typename T> | |
| T | TBCI::dot (const Vector< T > &a, const Vector< T > &b) |
| template<typename T> | |
| void | TBCI::job_vv_comp (struct thr_ctrl *tc) |
| template<typename T> | |
| bool | TBCI::par_comp (const Vector< T > &v1, const Vector< T > &v2) |
| template<typename T> | |
| bool | TBCI::par_comp (const Vector< T > &v1, TVector< T > v2) |
| template<typename T> | |
| bool | TBCI::par_comp (TVector< T > v1, const Vector< T > &v2) |
| template<typename T> | |
| bool | TBCI::par_comp (TVector< T > v1, TVector< T > v2) |
| template<typename T> | |
| TVector< T > | TBCI::operator+ (const T &a, const Vector< T > &v) |
| TV = T + V. | |
| template<typename T> | |
| TVector< T > | TBCI::operator- (const T &a, const Vector< T > &v) |
| TV = T - V. | |
| template<typename T> | |
| TSVector< T > | TBCI::operator* (const T &a, const Vector< T > &b) |
| template<typename T> | |
| TSVector< T > | TBCI::operator/ (const T &a, const Vector< T > &b) |
| template<typename T> | |
| void | TBCI::job_vec_fabssqr (struct thr_ctrl *tc) |
| template<typename T> | |
| double | TBCI::fabssqr (TVector< T > tv) |
-------------------------------------------------------------
Definition in file vector.h.
| #define _JOB_TMPL2C | ( | oper, | |||
| st, | |||||
| en, | |||||
| a1, | |||||
| a2, | |||||
| a3, | |||||
| a4, | |||||
| a5 | ) | job_##oper <T>, en-st, a1+st, &a2 |
| #define _JOB_TMPL2V | ( | oper, | |||
| st, | |||||
| en, | |||||
| a1, | |||||
| a2, | |||||
| a3, | |||||
| a4, | |||||
| a5 | ) | job_##oper <T>, en-st, a1+st, a2+st |
| #define _JOB_TMPL3CC | ( | oper, | |||
| st, | |||||
| en, | |||||
| a1, | |||||
| a2, | |||||
| a3, | |||||
| a4, | |||||
| a5 | ) | job_##oper <T>, en-st, a1+st, &a2, &a3 |
| #define _JOB_TMPL3VC | ( | oper, | |||
| st, | |||||
| en, | |||||
| a1, | |||||
| a2, | |||||
| a3, | |||||
| a4, | |||||
| a5 | ) | job_##oper <T>, en-st, a1+st, a2+st, &a3 |
| #define _JOB_TMPL3VV | ( | oper, | |||
| st, | |||||
| en, | |||||
| a1, | |||||
| a2, | |||||
| a3, | |||||
| a4, | |||||
| a5 | ) | job_##oper <T>, en-st, a1+st, a2+st, a3+st |
| #define _JOB_TMPL4C | ( | oper, | |||
| st, | |||||
| en, | |||||
| a1, | |||||
| a2, | |||||
| a3, | |||||
| a4, | |||||
| a5 | ) | job_##oper <T>, en-st, a1+st, a2+st, &a3, &a4 |
| #define _JOB_TMPL4V | ( | oper, | |||
| st, | |||||
| en, | |||||
| a1, | |||||
| a2, | |||||
| a3, | |||||
| a4, | |||||
| a5 | ) | job_##oper <T>, en-st, a1+st, a2+st, a3+st, &a4 |
| #define _JOB_TMPL5 | ( | oper, | |||
| st, | |||||
| en, | |||||
| a1, | |||||
| a2, | |||||
| a3, | |||||
| a4, | |||||
| a5 | ) | job_##oper <T>, en-st, a1+st, a2+st, a3+st, &a4, &a5 |
| #define _SMP_TMPL2C | ( | oper, | |||
| st, | |||||
| en, | |||||
| a1, | |||||
| a2, | |||||
| a3, | |||||
| a4, | |||||
| a5 | ) | do_##oper <T> (en-st, a1+st, a2) |
| #define _SMP_TMPL2V | ( | oper, | |||
| st, | |||||
| en, | |||||
| a1, | |||||
| a2, | |||||
| a3, | |||||
| a4, | |||||
| a5 | ) | do_##oper <T> (en-st, a1+st, a2+st) |
| #define _SMP_TMPL3CC | ( | oper, | |||
| st, | |||||
| en, | |||||
| a1, | |||||
| a2, | |||||
| a3, | |||||
| a4, | |||||
| a5 | ) | do_##oper <T> (en-st, a1+st, a2, a3) |
| #define _SMP_TMPL3VC | ( | oper, | |||
| st, | |||||
| en, | |||||
| a1, | |||||
| a2, | |||||
| a3, | |||||
| a4, | |||||
| a5 | ) | do_##oper <T> (en-st, a1+st, a2+st, a3) |
| #define _SMP_TMPL3VV | ( | oper, | |||
| st, | |||||
| en, | |||||
| a1, | |||||
| a2, | |||||
| a3, | |||||
| a4, | |||||
| a5 | ) | do_##oper <T> (en-st, a1+st, a2+st, a3+st) |
| #define _SMP_TMPL4C | ( | oper, | |||
| st, | |||||
| en, | |||||
| a1, | |||||
| a2, | |||||
| a3, | |||||
| a4, | |||||
| a5 | ) | do_##oper <T> (en-st, a1+st, a2+st, a3, a4) |
| #define _SMP_TMPL4V | ( | oper, | |||
| st, | |||||
| en, | |||||
| a1, | |||||
| a2, | |||||
| a3, | |||||
| a4, | |||||
| a5 | ) | do_##oper <T> (en-st, a1+st, a2+st, a3+st, a4) |
| #define _SMP_TMPL5 | ( | oper, | |||
| st, | |||||
| en, | |||||
| a1, | |||||
| a2, | |||||
| a3, | |||||
| a4, | |||||
| a5 | ) | do_##oper <T> (en-st, a1+st, a2+st, a3+st, a4, a5) |
| #define COST_VECFABSSQR | ( | d | ) | (d*(COST_UNIT_LOAD+COST_MULT+COST_ADD+COST_LOOP)) |
| #define COST_VECSCALAR | ( | d | ) | (d*(2*COST_UNIT_LOAD+COST_MULT+COST_ADD+COST_LOOP)) |
| #define SMP_VECSLICE 16384 |
Definition at line 60 of file vector.h.
Referenced by TBCI::dot(), TBCI::Vector< T >::fabssqr(), TBCI::Vector< T >::operator*(), and TBCI::par_comp().
| #define STD_SMP_TEMPLATE | ( | oper, | |||
| dm, | |||||
| a1, | |||||
| a2, | |||||
| a3, | |||||
| a4, | |||||
| a5, | |||||
| SMP_TMPL, | |||||
| JOB_TMPL | ) |
Value:
/* use some heuristic to decide for the num of threads */ \ const unsigned n_thr = threads_avail (dm / SMP_VECSLICE); \ if (LIKELY(n_thr < 2)) { \ SMP_TMPL(oper, 0, dm, a1, a2, a3, a4, a5); \ } else { \ PREFETCH_R(a1, 3); /*PREFETCH_R(a2, 3);*/ \ const unsigned long first = slice_offset(1, 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 STD_SMP_TEMPLATE2C | ( | oper, | |||
| dm, | |||||
| a1, | |||||
| a2 | ) | STD_SMP_TEMPLATE(oper, dm, a1, a2, X, X, X, _SMP_TMPL2C, _JOB_TMPL2C) |
Definition at line 652 of file vector.h.
Referenced by TBCI::ediv(), TBCI::TSVector< T >::eval(), TBCI::TSMatrix< T >::eval(), TBCI::TVector< T >::operator*=(), TBCI::Matrix< T >::operator*=(), TBCI::operator+(), TBCI::TVector< T >::operator+=(), TBCI::TMatrix< T >::operator+=(), TBCI::operator-(), TBCI::TVector< T >::operator-=(), TBCI::TMatrix< T >::operator-=(), and TBCI::Matrix< T >::operator/=().
| #define STD_SMP_TEMPLATE2V | ( | oper, | |||
| dm, | |||||
| a1, | |||||
| a2 | ) | STD_SMP_TEMPLATE(oper, dm, a1, a2, X, X, X, _SMP_TMPL2V, _JOB_TMPL2V) |
Definition at line 650 of file vector.h.
Referenced by TBCI::Vector< T >::operator+(), TBCI::TVector< T >::operator+(), TBCI::Matrix< T >::operator+(), TBCI::TVector< T >::operator+=(), TBCI::TMatrix< T >::operator+=(), TBCI::Vector< T >::operator-(), TBCI::TVector< T >::operator-(), TBCI::Matrix< T >::operator-(), TBCI::TVector< T >::operator-=(), and TBCI::TMatrix< T >::operator-=().
| #define STD_SMP_TEMPLATE3CC | ( | oper, | |||
| dm, | |||||
| a1, | |||||
| a2, | |||||
| a3 | ) | STD_SMP_TEMPLATE(oper, dm, a1, a2, a3, X, X, _SMP_TMPL3CC, _JOB_TMPL3CC) |
| #define STD_SMP_TEMPLATE3VC | ( | oper, | |||
| dm, | |||||
| a1, | |||||
| a2, | |||||
| a3 | ) | STD_SMP_TEMPLATE(oper, dm, a1, a2, a3, X, X, _SMP_TMPL3VC, _JOB_TMPL3VC) |
Definition at line 656 of file vector.h.
Referenced by TBCI::TSVector< T >::clone(), TBCI::TSMatrix< T >::clone(), TBCI::ediv(), TBCI::Vector< T >::operator+(), TBCI::TSVector< T >::operator+(), TBCI::TVector< T >::operator+(), TBCI::Matrix< T >::operator+(), TBCI::TSMatrix< T >::operator+(), TBCI::operator+(), TBCI::TMatrix< T >::operator+(), TBCI::TVector< T >::operator+=(), TBCI::TMatrix< T >::operator+=(), TBCI::Vector< T >::operator-(), TBCI::TSVector< T >::operator-(), TBCI::TVector< T >::operator-(), TBCI::Matrix< T >::operator-(), TBCI::TSMatrix< T >::operator-(), TBCI::operator-(), TBCI::TMatrix< T >::operator-(), TBCI::TVector< T >::operator-=(), and TBCI::TMatrix< T >::operator-=().
| #define STD_SMP_TEMPLATE3VV | ( | oper, | |||
| dm, | |||||
| a1, | |||||
| a2, | |||||
| a3 | ) | STD_SMP_TEMPLATE(oper, dm, a1, a2, a3, X, X, _SMP_TMPL3VV, _JOB_TMPL3VV) |
Definition at line 654 of file vector.h.
Referenced by TBCI::Vector< T >::operator+(), TBCI::Matrix< T >::operator+(), TBCI::Vector< T >::operator-(), and TBCI::Matrix< T >::operator-().
| #define STD_SMP_TEMPLATE4C | ( | oper, | |||
| dm, | |||||
| a1, | |||||
| a2, | |||||
| a3, | |||||
| a4 | ) | STD_SMP_TEMPLATE(oper, dm, a1, a2, a3, a4, X, _SMP_TMPL4C, _JOB_TMPL4C) |
Definition at line 662 of file vector.h.
Referenced by TBCI::TSVector< T >::add_t_tsv(), TBCI::ediv(), TBCI::TSVector< T >::operator+(), TBCI::operator+(), TBCI::TSMatrix< T >::operator+(), TBCI::TSVector< T >::operator-(), TBCI::operator-(), TBCI::TSMatrix< T >::operator-(), and TBCI::TSVector< T >::sub_t_tsv().
| #define STD_SMP_TEMPLATE4V | ( | oper, | |||
| dm, | |||||
| a1, | |||||
| a2, | |||||
| a3, | |||||
| a4 | ) | STD_SMP_TEMPLATE(oper, dm, a1, a2, a3, a4, X, _SMP_TMPL4V, _JOB_TMPL4V) |
Definition at line 660 of file vector.h.
Referenced by TBCI::Vector< T >::operator+(), TBCI::TSVector< T >::operator+(), TBCI::Matrix< T >::operator+(), TBCI::TSMatrix< T >::operator+(), TBCI::Vector< T >::operator-(), TBCI::TSVector< T >::operator-(), TBCI::Matrix< T >::operator-(), and TBCI::TSMatrix< T >::operator-().
| #define STD_SMP_TEMPLATE5 | ( | oper, | |||
| dm, | |||||
| a1, | |||||
| a2, | |||||
| a3, | |||||
| a4, | |||||
| a5 | ) | STD_SMP_TEMPLATE(oper, dm, a1, a2, a3, a4, a5, _SMP_TMPL5, _JOB_TMPL5) |
Definition at line 664 of file vector.h.
Referenced by TBCI::TSVector< T >::operator+(), TBCI::TSMatrix< T >::operator+(), TBCI::TSVector< T >::operator-(), and TBCI::TSMatrix< T >::operator-().
1.5.6