PyPO User Manual
InterfaceCPU.h
Go to the documentation of this file.
1 #include <iostream>
2 #include <vector>
3 #include <complex>
4 #include <cmath>
5 #include <string>
6 
7 #include "Propagation.h"
8 #include "RayTrace.h"
9 
10 #ifdef _WIN32
11 # define PYPO_DLL __declspec(dllexport)
12 #else
13 # define PYPO_DLL
14 #endif
15 
16 #ifndef __InterfaceCPU_h
17 #define __InterfaceCPU_h
18 
19 /*! \file InterfaceCPU.h
20  \brief Declarations of PO and RT library for CPU.
21 
22  Provides double and single precision interface for CPU PO and RT.
23 */
24 extern "C"
25 {
26  PYPO_DLL void propagateToGrid_JM(c2Bundle *res, reflparams source, reflparams target,
28  c2Bundle *currents,
29  double k, int numThreads, double epsilon,
30  double t_direction);
31 
32  PYPO_DLL void propagateToGrid_EH(c2Bundle *res, reflparams source, reflparams target,
34  c2Bundle *currents,
35  double k, int numThreads, double epsilon,
36  double t_direction);
37 
38  PYPO_DLL void propagateToGrid_JMEH(c4Bundle *res, reflparams source, reflparams target,
40  c2Bundle *currents,
41  double k, int numThreads, double epsilon,
42  double t_direction);
43 
44  PYPO_DLL void propagateToGrid_EHP(c2rBundle *res, reflparams source, reflparams target,
46  c2Bundle *currents,
47  double k, int numThreads, double epsilon,
48  double t_direction);
49 
50  PYPO_DLL void propagateToGrid_scalar(arrC1 *res, reflparams source, reflparams target,
52  arrC1 *field,
53  double k, int numThreads, double epsilon,
54  double t_direction);
55 
56  PYPO_DLL void propagateToFarField(c2Bundle *res, reflparams source, reflparams target,
58  c2Bundle *currents,
59  double k, int numThreads, double epsilon,
60  double t_direction);
61 
62  PYPO_DLL void propagateRays(reflparams ctp, cframe *fr_in, cframe *fr_out,
63  int numThreads, double epsilon, double t0);
64 
65  // SINGLE INTERFACE
66  PYPO_DLL void propagateToGridf_JM(c2Bundlef *res, reflparamsf source, reflparamsf target,
68  c2Bundlef *currents,
69  float k, int numThreads, float epsilon,
70  float t_direction);
71 
72  PYPO_DLL void propagateToGridf_EH(c2Bundlef *res, reflparamsf source, reflparamsf target,
74  c2Bundlef *currents,
75  float k, int numThreads, float epsilon,
76  float t_direction);
77 
78  PYPO_DLL void propagateToGridf_JMEH(c4Bundlef *res, reflparamsf source, reflparamsf target,
80  c2Bundlef *currents,
81  float k, int numThreads, float epsilon,
82  float t_direction);
83 
84  PYPO_DLL void propagateToGridf_EHP(c2rBundlef *res, reflparamsf source, reflparamsf target,
86  c2Bundlef *currents,
87  float k, int numThreads, float epsilon,
88  float t_direction);
89 
90  PYPO_DLL void propagateToGridf_scalar(arrC1f *res, reflparamsf source, reflparamsf target,
92  arrC1f *field,
93  float k, int numThreads, float epsilon,
94  float t_direction);
95 
96  PYPO_DLL void propagateToFarFieldf(c2Bundlef *res, reflparamsf source, reflparamsf target,
98  c2Bundlef *currents,
99  float k, int numThreads, float epsilon,
100  float t_direction);
101 }
102 
103 #endif
PYPO_DLL void propagateToGrid_EH(c2Bundle *res, reflparams source, reflparams target, reflcontainer *cs, reflcontainer *ct, c2Bundle *currents, double k, int numThreads, double epsilon, double t_direction)
Definition: InterfaceCPU.cpp:64
PYPO_DLL void propagateToGrid_JM(c2Bundle *res, reflparams source, reflparams target, reflcontainer *cs, reflcontainer *ct, c2Bundle *currents, double k, int numThreads, double epsilon, double t_direction)
Definition: InterfaceCPU.cpp:29
PYPO_DLL void propagateToGrid_scalar(arrC1 *res, reflparams source, reflparams target, reflcontainer *cs, reflcontainer *ct, arrC1 *field, double k, int numThreads, double epsilon, double t_direction)
Definition: InterfaceCPU.cpp:171
PYPO_DLL void propagateToGridf_scalar(arrC1f *res, reflparamsf source, reflparamsf target, reflcontainerf *cs, reflcontainerf *ct, arrC1f *field, float k, int numThreads, float epsilon, float t_direction)
Definition: InterfaceCPU.cpp:407
PYPO_DLL void propagateToGridf_EHP(c2rBundlef *res, reflparamsf source, reflparamsf target, reflcontainerf *cs, reflcontainerf *ct, c2Bundlef *currents, float k, int numThreads, float epsilon, float t_direction)
Definition: InterfaceCPU.cpp:372
PYPO_DLL void propagateRays(reflparams ctp, cframe *fr_in, cframe *fr_out, int numThreads, double epsilon, double t0)
Definition: InterfaceCPU.cpp:236
PYPO_DLL void propagateToFarFieldf(c2Bundlef *res, reflparamsf source, reflparamsf target, reflcontainerf *cs, reflcontainerf *ct, c2Bundlef *currents, float k, int numThreads, float epsilon, float t_direction)
Definition: InterfaceCPU.cpp:442
PYPO_DLL void propagateToGrid_EHP(c2rBundle *res, reflparams source, reflparams target, reflcontainer *cs, reflcontainer *ct, c2Bundle *currents, double k, int numThreads, double epsilon, double t_direction)
Definition: InterfaceCPU.cpp:136
PYPO_DLL void propagateToGridf_EH(c2Bundlef *res, reflparamsf source, reflparamsf target, reflcontainerf *cs, reflcontainerf *ct, c2Bundlef *currents, float k, int numThreads, float epsilon, float t_direction)
Definition: InterfaceCPU.cpp:300
PYPO_DLL void propagateToGridf_JMEH(c4Bundlef *res, reflparamsf source, reflparamsf target, reflcontainerf *cs, reflcontainerf *ct, c2Bundlef *currents, float k, int numThreads, float epsilon, float t_direction)
Definition: InterfaceCPU.cpp:336
PYPO_DLL void propagateToGridf_JM(c2Bundlef *res, reflparamsf source, reflparamsf target, reflcontainerf *cs, reflcontainerf *ct, c2Bundlef *currents, float k, int numThreads, float epsilon, float t_direction)
Definition: InterfaceCPU.cpp:265
PYPO_DLL void propagateToFarField(c2Bundle *res, reflparams source, reflparams target, reflcontainer *cs, reflcontainer *ct, c2Bundle *currents, double k, int numThreads, double epsilon, double t_direction)
Definition: InterfaceCPU.cpp:206
PYPO_DLL void propagateToGrid_JMEH(c4Bundle *res, reflparams source, reflparams target, reflcontainer *cs, reflcontainer *ct, c2Bundle *currents, double k, int numThreads, double epsilon, double t_direction)
Definition: InterfaceCPU.cpp:100
Functions for PO calculations on CPU.
Functions for RT calculations on CPU.
Definition: Structs.h:29
Definition: Structs.h:219
Definition: Structs.h:42
Definition: Structs.h:232
Definition: Structs.h:90
Definition: Structs.h:280
Definition: Structs.h:59
Definition: Structs.h:249
Definition: Structs.h:151
Definition: Structs.h:135
Definition: Structs.h:325
Definition: Structs.h:111
Definition: Structs.h:301