TBCI Numerical high perf. C++ Library 2.8.0
vec_kern_unr_pref.h File Reference

Kernels to be called for array operations Unrolled and with prefetching. More...

#include "tbci/basics.h"
Include dependency graph for vec_kern_unr_pref.h:

Go to the source code of this file.

Macros

#define ADD3(r, v1, v2, f1, f2)
#define SUB3(r, v1, v2, f1, f2)
#define MUL3(r, v1, v2, f1, f2)
#define CMUL3(r, v1, v2, f1, f2)
#define DIV3(r, v1, v2, f1, f2)
#define CDIV3(r, v1, v2, f1, f2)
#define ADD2(r, v1, f1, f2)
#define SUB2(r, v1, f1, f2)
#define SUB2I(r, v1, f1, f2)
#define MUL2(r, v1, f1, f2)
#define CMUL2(r, v1, f1, f2)
#define CMUL2I(r, v1, f1, f2)
#define DIV2(r, v1, f1, f2)
#define DIV2I(r, v1, f1, f2)
#define CDIV2(r, v1, f1, f2)
#define CDIV2I(r, v1, f1, f2)
#define ADD2NV(r, v1, f1, f2)
#define SUB2NV(r, v1, f1, f2)
#define MUL2NV(r, v1, f1, f2)
#define ADD2RV(r, v1, f1, f2)
#define SUB2RV(r, v1, f1, f2)
#define MUL2RV(r, v1, f1, f2)
#define DIV2RV(r, v1, f1, f2)
#define ADD1NV(r, f1, f2)
#define SUB1NV(r, f1, f2)
#define SUB1RV(r, f1, f2)
#define MUL1NV(r, f1, f2)
#define DIV1NV(r, f1, f2)
#define DIV1RV(r, f1, f2)
#define ADD1RV(r, f1, f2)
#define MUL1RV(r, f1, f2)
#define ADD2NS(r, v1, f1, f2)
#define SUB2NS(r, v1, f1, f2)
#define SUB2RS(r, v1, f1, f2)
#define ADD3NS(r, v1, v2, f1, f2)
#define SUB3NS(r, v1, v2, f1, f2)
#define ADD3SN(r, v1, v2, f1, f2)
#define SUB3SN(r, v1, v2, f1, f2)
#define ADD3SS(r, v1, v2, f1, f2)
#define SUB3SS(r, v1, v2, f1, f2)
#define ADD2SN(r, v1, f1, f2)
#define SUB2SN(r, v1, f1, f2)
#define ADD2SS(r, v1, f1, f2)
#define SUB2SS(r, v1, f1, f2)
#define ADD2SV(r, v1, f1, f2)
#define SUB2SV(r, v1, f1, f2)
#define ADD1SV(r, f1, f2)
#define SUB1SV(r, f1, f2)
#define ADD2VS(r, v1, f1, f2)
#define SUB2VS(r, v1, f1, f2)
#define DIV2VS(r, v1, f1, f2)
#define NEG2(r, v1, f1, f2)
#define NEG1(r, f1, f2)
#define DOT2(r, v1, f1, f2)
#define XDOT2(r, v1, f1, f2)
#define MULT2(r, v1, f1, f2)
#define XMULT2(r, v1, f1, f2)
#define FABS1(r, f1, f2)
#define XFABS1(r, f1, f2)
#define SQR1(r, f1, f2)
#define XSQR1(r, f1, f2)
#define SUM1(r, f1, f2)
#define XSUM1(r, f1, f2)
#define SUMMULT3(r, v1, v2, f1, f2)
#define SUMCMULT3(r, v1, v2, f1, f2)

Functions

 VKERN_TEMPL_3V (do_vec_vec_add, ADD3)
 vec = vec + vec;
 VKERN_TEMPL_3V (do_vec_vec_sub, SUB3)
 vec = vec - vec;
 VKERN_TEMPL_3V (do_vec_vec_mul, MUL3)
 vec = emul (vec, vec);
 VKERN_TEMPL_3V (do_vec_vec_cmul, CMUL3)
 vec = cemul(vec, vec);
 VKERN_TEMPL_3V (do_vec_vec_div, DIV3)
 vec = ediv (vec, vec);
 VKERN_TEMPL_3V (do_vec_vec_cdiv, CDIV3)
 vec = cediv(vec, vec);
 VKERN_TEMPL_2V (do_vec_add_vec, ADD2)
 vec += vec;
 VKERN_TEMPL_2V (do_vec_sub_vec, SUB2)
 vec -= vec;
 VKERN_TEMPL_2V (do_vec_sub_vec_inv, SUB2I)
 vec -= vec; vec = -vec;
 VKERN_TEMPL_2V (do_vec_mul_vec, MUL2)
 vec *= vec; (emul)
 VKERN_TEMPL_2V (do_vec_cmul_vec, CMUL2)
 vec *= conj(vec); (cemul)
 VKERN_TEMPL_2V (do_vec_cmul_vec_inv, CMUL2I)
 vec *= conj(vec); (cemul)
 VKERN_TEMPL_2V (do_vec_div_vec, DIV2)
 vec /= vec; (ediv)
 VKERN_TEMPL_2V (do_vec_div_vec_inv, DIV2I)
 vec /= vec; (ediv)
 VKERN_TEMPL_2V (do_vec_cdiv_vec, CDIV2)
 vec /= conj(vec); (cediv)
 VKERN_TEMPL_2V (do_vec_cdiv_vec_inv, CDIV2I)
 vec /= conj(vec); (cediv)
 VKERN_TEMPL_2V_C (do_vec_val_add, ADD2NV)
 vec = vec + val
 VKERN_TEMPL_2V_C (do_vec_val_sub, SUB2NV)
 vec = vec - val
 VKERN_TEMPL_2V_C (do_vec_val_mul, MUL2NV)
 vec = vec * val;
 VKERN_TEMPL_2V_C (do_val_vec_add, ADD2RV)
 vec = val + vec;
 VKERN_TEMPL_2V_C (do_val_vec_sub, SUB2RV)
 vec = val - vec;
 VKERN_TEMPL_2V_C (do_val_vec_mul, MUL2RV)
 vec = val * vec;
 VKERN_TEMPL_2V_C (do_val_vec_div, DIV2RV)
 vec = val / vec;
 VKERN_TEMPL_1V_C (do_vec_add_val, ADD1NV)
 vec += val;
 VKERN_TEMPL_1V_C (do_vec_sub_val, SUB1NV)
 vec -= val;
 VKERN_TEMPL_1V_C (do_val_sub_vec, SUB1RV)
 vec -= val; vec = -vec;
 VKERN_TEMPL_1V_C (do_vec_mul_val, MUL1NV)
 vec *= val;
 VKERN_TEMPL_1V_C (do_vec_div_val, DIV1NV)
 vec /= val;
 VKERN_TEMPL_1V_C (do_val_div_vec, DIV1RV)
 vec = val / vec;
 VKERN_TEMPL_1V_C (do_val_add_vec, ADD1RV)
 vec += val
 VKERN_TEMPL_2V_C (do_vec_add_svc, ADD2NS)
 vec += val*vec
 VKERN_TEMPL_2V_C (do_vec_sub_svc, SUB2NS)
 vec -= val*vec
 VKERN_TEMPL_2V_C (do_vec_sub_svc_inv, SUB2RS)
 vec -= val*vec
 VKERN_TEMPL_3V_C (do_vec_svc_add, ADD3NS)
 vec = vec + s*vec;
 VKERN_TEMPL_3V_C (do_vec_svc_sub, SUB3NS)
 vec = vec - s*vec;
 VKERN_TEMPL_3V_C (do_svc_vec_add, ADD3SN)
 vec = s*vec + vec;
 VKERN_TEMPL_3V_C (do_svc_vec_sub, SUB3SN)
 vec = s*vec - vec;
 VKERN_TEMPL_3V_CC (do_svc_svc_add, ADD3SS)
 vec = s*vec + s*vec;
 VKERN_TEMPL_3V_CC (do_svc_svc_sub, SUB3SS)
 vec = s*vec - s*vec;
 VKERN_TEMPL_2V_C (do_svc_add_vec, ADD2SN)
 vec *= s; vec += vec;
 VKERN_TEMPL_2V_C (do_svc_sub_vec, SUB2SN)
 vec *= s; vec -= vec;
 VKERN_TEMPL_2V_CC (do_svc_add_svc, ADD2SS)
 vec *= s; vec += s*vec;
 VKERN_TEMPL_2V_CC (do_svc_sub_svc, SUB2SS)
 vec *= s; vec -= s*vec;
 VKERN_TEMPL_2V_CC (do_svc_val_add, ADD2SV)
 vec = s*vec + val
 VKERN_TEMPL_2V_CC (do_svc_val_sub, SUB2SV)
 vec = s*vec - val
 VKERN_TEMPL_1V_CC (do_svc_add_val, ADD1SV)
 vec = s*vec; vec += val;
 VKERN_TEMPL_1V_CC (do_svc_sub_val, SUB1SV)
 vec = s*vec; vec -= val;
 VKERN_TEMPL_2V_CC (do_val_svc_add, ADD2VS)
 vec = val + s*vec;
 VKERN_TEMPL_2V_CC (do_val_svc_sub, SUB2VS)
 vec = val - s*vec;
 VKERN_TEMPL_2V_CC (do_val_svc_div, DIV2VS)
 vec = val / s*vec;
 VKERN_TEMPL_2V (do_vec_neg_vec, NEG2)
 vec = -vec
 VKERN_TEMPL_1V (do_vec_neg, NEG1)
 vec = -vec
 VKERN_TEMPL_2V_T (do_vec_dot_quick, DOT2, T)
 val = SUM vec * ~vec;
 VKERN_TEMPL_2V_T (do_vec_dot_exact, XDOT2, T)
 val = SUM vec * ~vec;
 VKERN_TEMPL_2V_T (do_vec_mult_quick, MULT2, T)
 val = SUM vec * vec;
 VKERN_TEMPL_2V_T_STRIDE (do_vec_mult_stride_quick, MULT2, T)
 VKERN_TEMPL_2V_T (do_vec_mult_exact, XMULT2, T)
 val = SUM vec * vec;
 VKERN_TEMPL_2V_T_STRIDE (do_vec_mult_stride_exact, XMULT2, T)
 VKERN_TEMPL_1V_T_LD (do_vec_fabssqr_quick, FABS1, double)
 val = SUM fabssqr vec ;
 VKERN_TEMPL_1V_T (do_vec_fabssqr_exact, XFABS1, double)
 val = SUM fabssqr vec ;
 VKERN_TEMPL_1V_T (do_vec_sumsqr_quick, SQR1, T)
 val = SUM sqr vec ;
 VKERN_TEMPL_1V_T (do_vec_sumsqr_exact, XSQR1, T)
 val = SUM sqr vec ;
 VKERN_TEMPL_1V_T (do_vec_sum_quick, SUM1, T)
 val = SUM vec ;
 VKERN_TEMPL_1V_T (do_vec_sum_exact, XSUM1, T)
 val = exact SUM vec
 VKERN_TEMPL_3V (do_add_vec_vec_mul, SUMMULT3)
 VKERN_TEMPL_3V (do_add_vec_vec_cmul, SUMCMULT3)

Detailed Description

Kernels to be called for array operations Unrolled and with prefetching.

Kurt Garloff kurt@.nosp@m.garl.nosp@m.off.d.nosp@m.e, 07/2002, GNU LGPL

Id
vec_kern_unr_pref.h,v 1.1.2.39 2019/05/28 11:13:02 garloff Exp

Definition in file vec_kern_unr_pref.h.

Macro Definition Documentation

◆ ADD1NV

#define ADD1NV ( r,
f1,
f2 )
Value:
r += f2

Definition at line 114 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_1V_C().

◆ ADD1RV

#define ADD1RV ( r,
f1,
f2 )
Value:
r = f2 + r

Definition at line 138 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_1V_C().

◆ ADD1SV

#define ADD1SV ( r,
f1,
f2 )
Value:
r = f1*r + f2

Definition at line 215 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_1V_CC().

◆ ADD2

#define ADD2 ( r,
v1,
f1,
f2 )
Value:
r += v1

Definition at line 42 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_2V().

◆ ADD2NS

#define ADD2NS ( r,
v1,
f1,
f2 )
Value:
r += f2*v1

Definition at line 148 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_2V_C().

◆ ADD2NV

#define ADD2NV ( r,
v1,
f1,
f2 )
Value:
r = v1 + f2

Definition at line 84 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_2V_C().

◆ ADD2RV

#define ADD2RV ( r,
v1,
f1,
f2 )
Value:
r = f2 + v1

Definition at line 97 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_2V_C().

◆ ADD2SN

#define ADD2SN ( r,
v1,
f1,
f2 )
Value:
r = f2*r + v1

Definition at line 188 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_2V_C().

◆ ADD2SS

#define ADD2SS ( r,
v1,
f1,
f2 )
Value:
r = f1*r + f2*v1

Definition at line 197 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_2V_CC().

◆ ADD2SV

#define ADD2SV ( r,
v1,
f1,
f2 )
Value:
r = f1*v1 + f2

Definition at line 206 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_2V_CC().

◆ ADD2VS

#define ADD2VS ( r,
v1,
f1,
f2 )
Value:
r = f1 + f2*v1

Definition at line 224 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_2V_CC().

◆ ADD3

#define ADD3 ( r,
v1,
v2,
f1,
f2 )
Value:
r = v1 + v2

Definition at line 17 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_3V().

◆ ADD3NS

#define ADD3NS ( r,
v1,
v2,
f1,
f2 )
Value:
r = v1 + f2*v2

Definition at line 161 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_3V_C().

◆ ADD3SN

#define ADD3SN ( r,
v1,
v2,
f1,
f2 )
Value:
r = f2*v1 + v2

Definition at line 170 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_3V_C().

◆ ADD3SS

#define ADD3SS ( r,
v1,
v2,
f1,
f2 )
Value:
r = f1*v1 + f2*v2

Definition at line 179 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_3V_CC().

◆ CDIV2

#define CDIV2 ( r,
v1,
f1,
f2 )
Value:
r = CPLX__ conj(r) / v1
NAMESPACE_END NAMESPACE_CPLX TBCI__ cplx< T > conj(const TBCI__ cplx< T > &c)
Definition cplx.h:663

Definition at line 74 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_2V().

◆ CDIV2I

#define CDIV2I ( r,
v1,
f1,
f2 )
Value:
r = CPLX__ conj(v1) / r

Definition at line 78 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_2V().

◆ CDIV3

#define CDIV3 ( r,
v1,
v2,
f1,
f2 )
Value:
r = CPLX__ conj(v1) / v2

Definition at line 37 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_3V().

◆ CMUL2

#define CMUL2 ( r,
v1,
f1,
f2 )
Value:
r = CPLX__ conj(r) * v1

Definition at line 58 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_2V().

◆ CMUL2I

#define CMUL2I ( r,
v1,
f1,
f2 )
Value:
r *= CPLX__ conj(v1)

Definition at line 62 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_2V().

◆ CMUL3

#define CMUL3 ( r,
v1,
v2,
f1,
f2 )
Value:
r = CPLX__ conj(v1) * v2

Definition at line 29 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_3V().

◆ DIV1NV

#define DIV1NV ( r,
f1,
f2 )
Value:
r /= f2

Definition at line 130 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_1V_C().

◆ DIV1RV

#define DIV1RV ( r,
f1,
f2 )
Value:
r = f2 / r

Definition at line 134 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_1V_C().

◆ DIV2

#define DIV2 ( r,
v1,
f1,
f2 )
Value:
r /= v1

Definition at line 66 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_2V().

◆ DIV2I

#define DIV2I ( r,
v1,
f1,
f2 )
Value:
r = v1 / r

Definition at line 70 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_2V().

◆ DIV2RV

#define DIV2RV ( r,
v1,
f1,
f2 )
Value:
r = f2 / v1

Definition at line 109 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_2V_C().

◆ DIV2VS

#define DIV2VS ( r,
v1,
f1,
f2 )
Value:
r = f1 / (f2*v1)

Definition at line 232 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_2V_CC().

◆ DIV3

#define DIV3 ( r,
v1,
v2,
f1,
f2 )
Value:
r = v1 / v2

Definition at line 33 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_3V().

◆ DOT2

#define DOT2 ( r,
v1,
f1,
f2 )
Value:
f2 += CPLX__ conj(r) * v1

Definition at line 245 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_2V_T().

◆ FABS1

#define FABS1 ( r,
f1,
f2 )
Value:
f2 += fabssqr(r)
double fabssqr(const cplx< T > &c)
Definition cplx.h:390

Definition at line 263 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_1V_T_LD().

◆ MUL1NV

#define MUL1NV ( r,
f1,
f2 )
Value:
r *= f2

Definition at line 126 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_1V_C().

◆ MUL1RV

#define MUL1RV ( r,
f1,
f2 )
Value:
r = f2 * r;

Definition at line 143 of file vec_kern_unr_pref.h.

◆ MUL2

#define MUL2 ( r,
v1,
f1,
f2 )
Value:
r *= v1

Definition at line 54 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_2V().

◆ MUL2NV

#define MUL2NV ( r,
v1,
f1,
f2 )
Value:
r = v1 * f2

Definition at line 92 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_2V_C().

◆ MUL2RV

#define MUL2RV ( r,
v1,
f1,
f2 )
Value:
r = f2 * v1

Definition at line 105 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_2V_C().

◆ MUL3

#define MUL3 ( r,
v1,
v2,
f1,
f2 )
Value:
r = v1 * v2

Definition at line 25 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_3V().

◆ MULT2

#define MULT2 ( r,
v1,
f1,
f2 )
Value:
f2 += r * v1

Definition at line 253 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_2V_T(), and VKERN_TEMPL_2V_T_STRIDE().

◆ NEG1

#define NEG1 ( r,
f1,
f2 )
Value:
r = -r

Definition at line 241 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_1V().

◆ NEG2

#define NEG2 ( r,
v1,
f1,
f2 )
Value:
r = -v1

Definition at line 237 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_2V().

◆ SQR1

#define SQR1 ( r,
f1,
f2 )
Value:
f2 += r*r

Definition at line 271 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_1V_T().

◆ SUB1NV

#define SUB1NV ( r,
f1,
f2 )
Value:
r -= f2

Definition at line 118 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_1V_C().

◆ SUB1RV

#define SUB1RV ( r,
f1,
f2 )
Value:
r = f2 - r

Definition at line 122 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_1V_C().

◆ SUB1SV

#define SUB1SV ( r,
f1,
f2 )
Value:
r = f1*r - f2

Definition at line 219 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_1V_CC().

◆ SUB2

#define SUB2 ( r,
v1,
f1,
f2 )
Value:
r -= v1

Definition at line 46 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_2V().

◆ SUB2I

#define SUB2I ( r,
v1,
f1,
f2 )
Value:
r = v1 - r

Definition at line 50 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_2V().

◆ SUB2NS

#define SUB2NS ( r,
v1,
f1,
f2 )
Value:
r -= f2*v1

Definition at line 152 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_2V_C().

◆ SUB2NV

#define SUB2NV ( r,
v1,
f1,
f2 )
Value:
r = v1 - f2

Definition at line 88 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_2V_C().

◆ SUB2RS

#define SUB2RS ( r,
v1,
f1,
f2 )
Value:
r = f2*v1 - r

Definition at line 156 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_2V_C().

◆ SUB2RV

#define SUB2RV ( r,
v1,
f1,
f2 )
Value:
r = f2 - v1

Definition at line 101 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_2V_C().

◆ SUB2SN

#define SUB2SN ( r,
v1,
f1,
f2 )
Value:
r = f2*r - v1

Definition at line 192 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_2V_C().

◆ SUB2SS

#define SUB2SS ( r,
v1,
f1,
f2 )
Value:
r = f1*r - f2*v1

Definition at line 201 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_2V_CC().

◆ SUB2SV

#define SUB2SV ( r,
v1,
f1,
f2 )
Value:
r = f1*v1 - f2

Definition at line 210 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_2V_CC().

◆ SUB2VS

#define SUB2VS ( r,
v1,
f1,
f2 )
Value:
r = f1 - f2*v1

Definition at line 228 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_2V_CC().

◆ SUB3

#define SUB3 ( r,
v1,
v2,
f1,
f2 )
Value:
r = v1 - v2

Definition at line 21 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_3V().

◆ SUB3NS

#define SUB3NS ( r,
v1,
v2,
f1,
f2 )
Value:
r = v1 - f2*v2

Definition at line 165 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_3V_C().

◆ SUB3SN

#define SUB3SN ( r,
v1,
v2,
f1,
f2 )
Value:
r = f2*v1 - v2

Definition at line 174 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_3V_C().

◆ SUB3SS

#define SUB3SS ( r,
v1,
v2,
f1,
f2 )
Value:
r = f1*v1 - f2*v2

Definition at line 183 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_3V_CC().

◆ SUM1

#define SUM1 ( r,
f1,
f2 )
Value:
f2 += r

Definition at line 279 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_1V_T().

◆ SUMCMULT3

#define SUMCMULT3 ( r,
v1,
v2,
f1,
f2 )
Value:
r += CPLX__ conj(v1)*v2

Definition at line 291 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_3V().

◆ SUMMULT3

#define SUMMULT3 ( r,
v1,
v2,
f1,
f2 )
Value:
r += v1*v2

Definition at line 289 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_3V().

◆ XDOT2

#define XDOT2 ( r,
v1,
f1,
f2 )
Value:
{ T y = CPLX__ conj(r) * v1; T t = f2+y; f1 += (t-f2)-y; f2 = t; }
doublereal y
Definition TOMS_707.C:27
#define T
Definition bdmatlib.cc:20

Definition at line 249 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_2V_T().

◆ XFABS1

#define XFABS1 ( r,
f1,
f2 )
Value:
{ double y = fabssqr(r); double t = f2+y; f1 += (t-f2)-y; f2 = t; }

Definition at line 267 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_1V_T().

◆ XMULT2

#define XMULT2 ( r,
v1,
f1,
f2 )
Value:
{ T y = r * v1; T t = f2+y; f1 += (t-f2)-y; f2 = t; }

Definition at line 258 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_2V_T(), and VKERN_TEMPL_2V_T_STRIDE().

◆ XSQR1

#define XSQR1 ( r,
f1,
f2 )
Value:
{ T y = r*r; T t = f2+y; f1 += (t-f2)-y; f2 = t; }

Definition at line 275 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_1V_T().

◆ XSUM1

#define XSUM1 ( r,
f1,
f2 )
Value:
{ T t = f2+r; f1 += (t-f2)-r; f2 = t; }

Definition at line 283 of file vec_kern_unr_pref.h.

Referenced by VKERN_TEMPL_1V_T().

Function Documentation

◆ VKERN_TEMPL_1V()

VKERN_TEMPL_1V ( do_vec_neg ,
NEG1  )

vec = -vec

References NEG1.

◆ VKERN_TEMPL_1V_C() [1/7]

VKERN_TEMPL_1V_C ( do_val_add_vec ,
ADD1RV  )

vec += val

References ADD1RV.

◆ VKERN_TEMPL_1V_C() [2/7]

VKERN_TEMPL_1V_C ( do_val_div_vec ,
DIV1RV  )

vec = val / vec;

References DIV1RV.

◆ VKERN_TEMPL_1V_C() [3/7]

VKERN_TEMPL_1V_C ( do_val_sub_vec ,
SUB1RV  )

vec -= val; vec = -vec;

References SUB1RV.

◆ VKERN_TEMPL_1V_C() [4/7]

VKERN_TEMPL_1V_C ( do_vec_add_val ,
ADD1NV  )

vec += val;

References ADD1NV.

◆ VKERN_TEMPL_1V_C() [5/7]

VKERN_TEMPL_1V_C ( do_vec_div_val ,
DIV1NV  )

vec /= val;

References DIV1NV.

◆ VKERN_TEMPL_1V_C() [6/7]

VKERN_TEMPL_1V_C ( do_vec_mul_val ,
MUL1NV  )

vec *= val;

References MUL1NV.

◆ VKERN_TEMPL_1V_C() [7/7]

VKERN_TEMPL_1V_C ( do_vec_sub_val ,
SUB1NV  )

vec -= val;

References SUB1NV.

◆ VKERN_TEMPL_1V_CC() [1/2]

VKERN_TEMPL_1V_CC ( do_svc_add_val ,
ADD1SV  )

vec = s*vec; vec += val;

References ADD1SV.

◆ VKERN_TEMPL_1V_CC() [2/2]

VKERN_TEMPL_1V_CC ( do_svc_sub_val ,
SUB1SV  )

vec = s*vec; vec -= val;

References SUB1SV.

◆ VKERN_TEMPL_1V_T() [1/5]

VKERN_TEMPL_1V_T ( do_vec_fabssqr_exact ,
XFABS1 ,
double  )

val = SUM fabssqr vec ;

References XFABS1.

◆ VKERN_TEMPL_1V_T() [2/5]

VKERN_TEMPL_1V_T ( do_vec_sum_exact ,
XSUM1 ,
T  )

val = exact SUM vec

References T, and XSUM1.

◆ VKERN_TEMPL_1V_T() [3/5]

VKERN_TEMPL_1V_T ( do_vec_sum_quick ,
SUM1 ,
T  )

val = SUM vec ;

References SUM1, and T.

◆ VKERN_TEMPL_1V_T() [4/5]

VKERN_TEMPL_1V_T ( do_vec_sumsqr_exact ,
XSQR1 ,
T  )

val = SUM sqr vec ;

References T, and XSQR1.

◆ VKERN_TEMPL_1V_T() [5/5]

VKERN_TEMPL_1V_T ( do_vec_sumsqr_quick ,
SQR1 ,
T  )

val = SUM sqr vec ;

References SQR1, and T.

◆ VKERN_TEMPL_1V_T_LD()

VKERN_TEMPL_1V_T_LD ( do_vec_fabssqr_quick ,
FABS1 ,
double  )

val = SUM fabssqr vec ;

References FABS1.

◆ VKERN_TEMPL_2V() [1/11]

VKERN_TEMPL_2V ( do_vec_add_vec ,
ADD2  )

vec += vec;

References ADD2.

◆ VKERN_TEMPL_2V() [2/11]

VKERN_TEMPL_2V ( do_vec_cdiv_vec ,
CDIV2  )

vec /= conj(vec); (cediv)

References CDIV2.

◆ VKERN_TEMPL_2V() [3/11]

VKERN_TEMPL_2V ( do_vec_cdiv_vec_inv ,
CDIV2I  )

vec /= conj(vec); (cediv)

References CDIV2I.

◆ VKERN_TEMPL_2V() [4/11]

VKERN_TEMPL_2V ( do_vec_cmul_vec ,
CMUL2  )

vec *= conj(vec); (cemul)

References CMUL2.

◆ VKERN_TEMPL_2V() [5/11]

VKERN_TEMPL_2V ( do_vec_cmul_vec_inv ,
CMUL2I  )

vec *= conj(vec); (cemul)

References CMUL2I.

◆ VKERN_TEMPL_2V() [6/11]

VKERN_TEMPL_2V ( do_vec_div_vec ,
DIV2  )

vec /= vec; (ediv)

References DIV2.

◆ VKERN_TEMPL_2V() [7/11]

VKERN_TEMPL_2V ( do_vec_div_vec_inv ,
DIV2I  )

vec /= vec; (ediv)

References DIV2I.

◆ VKERN_TEMPL_2V() [8/11]

VKERN_TEMPL_2V ( do_vec_mul_vec ,
MUL2  )

vec *= vec; (emul)

References MUL2.

◆ VKERN_TEMPL_2V() [9/11]

VKERN_TEMPL_2V ( do_vec_neg_vec ,
NEG2  )

vec = -vec

References NEG2.

◆ VKERN_TEMPL_2V() [10/11]

VKERN_TEMPL_2V ( do_vec_sub_vec ,
SUB2  )

vec -= vec;

References SUB2.

◆ VKERN_TEMPL_2V() [11/11]

VKERN_TEMPL_2V ( do_vec_sub_vec_inv ,
SUB2I  )

vec -= vec; vec = -vec;

References SUB2I.

◆ VKERN_TEMPL_2V_C() [1/12]

VKERN_TEMPL_2V_C ( do_svc_add_vec ,
ADD2SN  )

vec *= s; vec += vec;

References ADD2SN.

◆ VKERN_TEMPL_2V_C() [2/12]

VKERN_TEMPL_2V_C ( do_svc_sub_vec ,
SUB2SN  )

vec *= s; vec -= vec;

References SUB2SN.

◆ VKERN_TEMPL_2V_C() [3/12]

VKERN_TEMPL_2V_C ( do_val_vec_add ,
ADD2RV  )

vec = val + vec;

References ADD2RV.

◆ VKERN_TEMPL_2V_C() [4/12]

VKERN_TEMPL_2V_C ( do_val_vec_div ,
DIV2RV  )

vec = val / vec;

References DIV2RV.

◆ VKERN_TEMPL_2V_C() [5/12]

VKERN_TEMPL_2V_C ( do_val_vec_mul ,
MUL2RV  )

vec = val * vec;

References MUL2RV.

◆ VKERN_TEMPL_2V_C() [6/12]

VKERN_TEMPL_2V_C ( do_val_vec_sub ,
SUB2RV  )

vec = val - vec;

References SUB2RV.

◆ VKERN_TEMPL_2V_C() [7/12]

VKERN_TEMPL_2V_C ( do_vec_add_svc ,
ADD2NS  )

vec += val*vec

References ADD2NS.

◆ VKERN_TEMPL_2V_C() [8/12]

VKERN_TEMPL_2V_C ( do_vec_sub_svc ,
SUB2NS  )

vec -= val*vec

References SUB2NS.

◆ VKERN_TEMPL_2V_C() [9/12]

VKERN_TEMPL_2V_C ( do_vec_sub_svc_inv ,
SUB2RS  )

vec -= val*vec

References SUB2RS.

◆ VKERN_TEMPL_2V_C() [10/12]

VKERN_TEMPL_2V_C ( do_vec_val_add ,
ADD2NV  )

vec = vec + val

References ADD2NV.

◆ VKERN_TEMPL_2V_C() [11/12]

VKERN_TEMPL_2V_C ( do_vec_val_mul ,
MUL2NV  )

vec = vec * val;

References MUL2NV.

◆ VKERN_TEMPL_2V_C() [12/12]

VKERN_TEMPL_2V_C ( do_vec_val_sub ,
SUB2NV  )

vec = vec - val

References SUB2NV.

◆ VKERN_TEMPL_2V_CC() [1/7]

VKERN_TEMPL_2V_CC ( do_svc_add_svc ,
ADD2SS  )

vec *= s; vec += s*vec;

References ADD2SS.

◆ VKERN_TEMPL_2V_CC() [2/7]

VKERN_TEMPL_2V_CC ( do_svc_sub_svc ,
SUB2SS  )

vec *= s; vec -= s*vec;

References SUB2SS.

◆ VKERN_TEMPL_2V_CC() [3/7]

VKERN_TEMPL_2V_CC ( do_svc_val_add ,
ADD2SV  )

vec = s*vec + val

References ADD2SV.

◆ VKERN_TEMPL_2V_CC() [4/7]

VKERN_TEMPL_2V_CC ( do_svc_val_sub ,
SUB2SV  )

vec = s*vec - val

References SUB2SV.

◆ VKERN_TEMPL_2V_CC() [5/7]

VKERN_TEMPL_2V_CC ( do_val_svc_add ,
ADD2VS  )

vec = val + s*vec;

References ADD2VS.

◆ VKERN_TEMPL_2V_CC() [6/7]

VKERN_TEMPL_2V_CC ( do_val_svc_div ,
DIV2VS  )

vec = val / s*vec;

References DIV2VS.

◆ VKERN_TEMPL_2V_CC() [7/7]

VKERN_TEMPL_2V_CC ( do_val_svc_sub ,
SUB2VS  )

vec = val - s*vec;

References SUB2VS.

◆ VKERN_TEMPL_2V_T() [1/4]

VKERN_TEMPL_2V_T ( do_vec_dot_exact ,
XDOT2 ,
T  )

val = SUM vec * ~vec;

References T, and XDOT2.

◆ VKERN_TEMPL_2V_T() [2/4]

VKERN_TEMPL_2V_T ( do_vec_dot_quick ,
DOT2 ,
T  )

val = SUM vec * ~vec;

References DOT2, and T.

◆ VKERN_TEMPL_2V_T() [3/4]

VKERN_TEMPL_2V_T ( do_vec_mult_exact ,
XMULT2 ,
T  )

val = SUM vec * vec;

References T, and XMULT2.

◆ VKERN_TEMPL_2V_T() [4/4]

VKERN_TEMPL_2V_T ( do_vec_mult_quick ,
MULT2 ,
T  )

val = SUM vec * vec;

References MULT2, and T.

◆ VKERN_TEMPL_2V_T_STRIDE() [1/2]

VKERN_TEMPL_2V_T_STRIDE ( do_vec_mult_stride_exact ,
XMULT2 ,
T  )

References T, and XMULT2.

◆ VKERN_TEMPL_2V_T_STRIDE() [2/2]

VKERN_TEMPL_2V_T_STRIDE ( do_vec_mult_stride_quick ,
MULT2 ,
T  )

References MULT2, and T.

◆ VKERN_TEMPL_3V() [1/8]

VKERN_TEMPL_3V ( do_add_vec_vec_cmul ,
SUMCMULT3  )

References NAMESPACE_END, and SUMCMULT3.

◆ VKERN_TEMPL_3V() [2/8]

VKERN_TEMPL_3V ( do_add_vec_vec_mul ,
SUMMULT3  )

References SUMMULT3.

◆ VKERN_TEMPL_3V() [3/8]

VKERN_TEMPL_3V ( do_vec_vec_add ,
ADD3  )

vec = vec + vec;

References ADD3.

◆ VKERN_TEMPL_3V() [4/8]

VKERN_TEMPL_3V ( do_vec_vec_cdiv ,
CDIV3  )

vec = cediv(vec, vec);

References CDIV3.

◆ VKERN_TEMPL_3V() [5/8]

VKERN_TEMPL_3V ( do_vec_vec_cmul ,
CMUL3  )

vec = cemul(vec, vec);

References CMUL3.

◆ VKERN_TEMPL_3V() [6/8]

VKERN_TEMPL_3V ( do_vec_vec_div ,
DIV3  )

vec = ediv (vec, vec);

References DIV3.

◆ VKERN_TEMPL_3V() [7/8]

VKERN_TEMPL_3V ( do_vec_vec_mul ,
MUL3  )

vec = emul (vec, vec);

References MUL3.

◆ VKERN_TEMPL_3V() [8/8]

VKERN_TEMPL_3V ( do_vec_vec_sub ,
SUB3  )

vec = vec - vec;

References SUB3.

◆ VKERN_TEMPL_3V_C() [1/4]

VKERN_TEMPL_3V_C ( do_svc_vec_add ,
ADD3SN  )

vec = s*vec + vec;

References ADD3SN.

◆ VKERN_TEMPL_3V_C() [2/4]

VKERN_TEMPL_3V_C ( do_svc_vec_sub ,
SUB3SN  )

vec = s*vec - vec;

References SUB3SN.

◆ VKERN_TEMPL_3V_C() [3/4]

VKERN_TEMPL_3V_C ( do_vec_svc_add ,
ADD3NS  )

vec = vec + s*vec;

References ADD3NS.

◆ VKERN_TEMPL_3V_C() [4/4]

VKERN_TEMPL_3V_C ( do_vec_svc_sub ,
SUB3NS  )

vec = vec - s*vec;

References SUB3NS.

◆ VKERN_TEMPL_3V_CC() [1/2]

VKERN_TEMPL_3V_CC ( do_svc_svc_add ,
ADD3SS  )

vec = s*vec + s*vec;

References ADD3SS.

◆ VKERN_TEMPL_3V_CC() [2/2]

VKERN_TEMPL_3V_CC ( do_svc_svc_sub ,
SUB3SS  )

vec = s*vec - s*vec;

References SUB3SS.