Cloudy
Spectral Synthesis Code for Astrophysics
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
vectorize_reduce.h
Go to the documentation of this file.
1 /* This file is part of Cloudy and is copyright (C)1978-2023 by Gary J. Ferland and
2  * others. For conditions of distribution and use see copyright notice in license.txt */
3 
4 #ifndef VECTORIZE_REDUCE_H
5 #define VECTORIZE_REDUCE_H
6 
7 // NB NB -- do not include this file directly, include vectorize.h
8 
9 // calculate Sum( a[i] )
10 double reduce_a(const double* a, long ilo, long ihi);
11 // calculate Sum( a[i] )
12 sys_float reduce_a(const sys_float* a, long ilo, long ihi);
13 
14 
15 // calculate Sum( a[i]*b[i] )
16 double reduce_ab(const double* a, const double* b, long ilo, long ihi);
17 // calculate Sum( a[i]*double(b[i]) )
18 double reduce_ab(const double* a, const sys_float* b, long ilo, long ihi);
19 // calculate Sum( a[i]*b[i] )
20 sys_float reduce_ab(const sys_float* a, const sys_float* b, long ilo, long ihi);
21 
22 
23 // calculate Sum( a[i]*b[i]*c[i] )
24 double reduce_abc(const double* a, const double* b, const double* c, long ilo, long ihi);
25 // calculate Sum( a[i]*b[i]*c[i] )
26 double reduce_abc(const double* a, const double* b, const sys_float* c, long ilo, long ihi);
27 // calculate Sum( a[i]*b[i]*c[i] )
28 double reduce_abc(const double* a, const sys_float* b, const sys_float* c, long ilo, long ihi);
29 // calculate Sum( a[i]*b[i]*c[i] )
30 sys_float reduce_abc(const sys_float* a, const sys_float* b, const sys_float* c, long ilo, long ihi);
31 
32 
33 // calculate Sum( a[i]*b[i] ), sum_a = Sum( a[i] )
34 double reduce_ab_a(const double* a, const double* b, long ilo, long ihi, double* sum_a);
35 // calculate Sum( double(a[i])*b[i] ), sum_a = Sum( double(a[i]) )
36 double reduce_ab_a(const sys_float* a, const double* b, long ilo, long ihi, double* sum_a);
37 // calculate Sum( a[i]*double(b[i]) ), sum_a = Sum( a[i] )
38 double reduce_ab_a(const double* a, const sys_float* b, long ilo, long ihi, double* sum_a);
39 // calculate Sum( a[i]*b[i] ), sum_a = Sum( a[i] )
40 sys_float reduce_ab_a(const sys_float* a, const sys_float* b, long ilo, long ihi, sys_float* sum_a);
41 
42 
43 // calculate Sum( a[i]*b[i]*c[i] ), sum_ab = Sum( a[i]*b[i] )
44 double reduce_abc_ab(const double* a, const double* b, const double* c, long ilo, long ihi, double* sum_ab);
45 
46 #endif
double reduce_ab_a(const double *a, const double *b, long ilo, long ihi, double *sum_a)
Definition: vectorize_reduce.cpp:122
float sys_float
Definition: cddefines.h:130
double reduce_ab(const double *a, const double *b, long ilo, long ihi)
Definition: vectorize_reduce.cpp:45
double reduce_a(const double *a, long ilo, long ihi)
Definition: vectorize_reduce.cpp:23
double reduce_abc(const double *a, const double *b, const double *c, long ilo, long ihi)
Definition: vectorize_reduce.cpp:78
double reduce_abc_ab(const double *a, const double *b, const double *c, long ilo, long ihi, double *sum_ab)
Definition: vectorize_reduce.cpp:190