7 #include "sci\_sci_base.hpp"
8 #include "sci\_sci_macros.hpp"
9 #include "sci\_sci_var.hpp"
10 #include "sci\_sci_if_create_var.hpp"
11 #include "sci\_sci_if_emu_var_struct.hpp"
12 #include "sci\_sci_emu.hpp"
14 #include "_sci_if_var_struct.h"
24 struct var_struct emu_var_struct(const double &v);
26 struct var_struct emu_var_struct(const vec &v);
28 struct var_struct emu_var_struct(const mat &m);
31 struct var_struct emu_var_struct(const int &v);
33 struct var_struct emu_var_struct(const ivec &v);
35 struct var_struct emu_var_struct(const imat &m);
38 struct var_struct emu_var_struct(const bool &v);
40 struct var_struct emu_var_struct(const bvec &v);
42 struct var_struct emu_var_struct(const bmat &m);
45 struct var_struct emu_var_struct(const
std::complex<double> &v);
47 struct var_struct emu_var_struct(const cvec &v);
49 struct var_struct emu_var_struct(const cmat &m);
52 void* EMU_SCI_IF_CREATE(int sci_type);
55 void EMU_SCI_IF_EXEC(void *p_dev, int sci_command);
58 void EMU_SCI_IF_DESTROY(void *p_dev);
61 void EMU_SCI_IF_SET(void *p_dev, int sci_param, P param)
63 struct var_struct s_v;
66 s_v = emu_var_struct(param);
68 sci_if_set(p_dev, sci_param, &s_v);
70 delete_emu_var_struct_data(&s_v);
74 P EMU_SCI_IF_GET(
void *p_dev,
int sci_param)
76 struct var_struct s_v;
80 s_v = sci_if_get(p_dev, sci_param);
81 #if defined (FAST_EMU)
83 sci_var_value_get((
sci_var *)(s_v.p_var), &v);
84 sci_if_delete_var(&s_v);
91 emu_sci_if_malloc(&s_v);
93 sci_if_copy_var(&s_v);
95 sci_if_delete_var(&s_v);
97 p_var_v = create_var(&s_v);
99 sci_var_value_get(p_var_v, &v);
101 delete_emu_var_struct_data(&s_v);
110 template <
class Y,
class CE>
111 Y EMU_SCI_IF_GEN(
void *p_dev, CE v_ce)
114 struct var_struct s_y, s_ce;
116 s_ce = emu_var_struct(v_ce);
117 s_y = sci_if_gen(p_dev, &s_ce);
118 delete_emu_var_struct_data(&s_ce);
119 #if defined (FAST_EMU)
121 sci_var_value_get((
sci_var *)(s_y.p_var), &y);
122 sci_if_delete_var(&s_y);
131 emu_sci_if_malloc(&s_y);
133 sci_if_copy_var(&s_y);
135 sci_if_delete_var(&s_y);
137 p_var_y = create_var(&s_y);
139 sci_var_value_get(p_var_y, &y);
141 delete_emu_var_struct_data(&s_y);
149 template <
class Y,
class CE,
class X>
150 Y EMU_SCI_IF_PROC(
void *p_dev, CE v_ce, X v_x)
153 struct var_struct s_y, s_ce, s_x;
155 s_ce = emu_var_struct(v_ce);
156 s_x = emu_var_struct(v_x);
157 s_y = sci_if_proc(p_dev, &s_ce, &s_x);
158 delete_emu_var_struct_data(&s_ce);
159 delete_emu_var_struct_data(&s_x);
160 #if defined (FAST_EMU)
162 sci_var_value_get((
sci_var *)(s_y.p_var), &y);
163 sci_if_delete_var(&s_y);
172 emu_sci_if_malloc(&s_y);
174 sci_if_copy_var(&s_y);
176 sci_if_delete_var(&s_y);
178 p_var_y = create_var(&s_y);
180 sci_var_value_get(p_var_y, &y);
182 delete_emu_var_struct_data(&s_y);
SCI layer implements SCI_API interface as wrappers for SIM layer models.
Definition: _sci_create_sci_var.cpp:8
Abstract base for encapsulation of sci_variables.
Definition: _sci_var.hpp:23