FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
gnuplot/demo/plugin/gnuplot_plugin.h at master · gnuplot/gnuplot · GitHub
gnuplot
gnuplot
Repository navigation
Code
Pull requests
2
(2)
Actions
Security and quality
Insights
Expand file tree
Breadcrumbs
gnuplot
/
demo
/
plugin
/
gnuplot_plugin.h
Copy path
More file actions
More file actions
Latest commit
History
History
History
100 lines (85 loc) · 2.18 KB
Breadcrumbs
gnuplot
/
demo
/
plugin
/
gnuplot_plugin.h
Copy path
File metadata and controls
100 lines (85 loc) · 2.18 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
/*
* DATA_TYPES and struct value must match definitions in
* #include <gp_types.h>
* This file matches the source gnuplot version 6.1
*/
#ifndef
GNUPLOT_PLUGIN_H
#define
GNUPLOT_PLUGIN_H
#define
PLUGIN_VERSION
6.1
#include
<inttypes.h>
/* C99 type definitions */
enum
DATA_TYPES
{
INTGR
=
1
,
CMPLX
,
STRING
,
DATABLOCK
,
FUNCTIONBLOCK
,
ARRAY
,
COLORMAP_ARRAY
,
TEMP_ARRAY
,
LOCAL_ARRAY
,
VOXELGRID
,
NOTDEFINED
,
/* exists, but value is currently undefined */
INVALID_VALUE
,
/* used only for error return by external functions */
INVALID_NAME
/* used only to trap errors in linked axis function definition */
};
struct
gp_cmplx
{
double
real
,
imag
;
};
typedef
struct
value
{
enum
DATA_TYPES
type
;
union
{
int64_t
int_val
;
struct
gp_cmplx
cmplx_val
;
char
*
string_val
;
char
*
*
data_array
;
struct
value
*
value_array
;
}
v
;
}
t_value
;
/*
* End of definitions from gp_types.h
*/
#ifdef
_WIN32
# define
DLLEXPORT
__declspec(dllexport)
# define
__inline__
__inline
#else
# define
DLLEXPORT
#endif
/* prototype for a plugin function */
DLLEXPORT
void
*
gnuplot_init
(
struct
value
(
*
)(
int
,
struct
value
*
,
void
*
));
DLLEXPORT
void
gnuplot_fini
(
void
*
);
/* report gnuplot version number that this plugin was built for */
DLLEXPORT
double
gnuplot_version
(
void
) {
return
PLUGIN_VERSION
;}
/* Check that the number of parameters declared in the gnuplot import
* statement matches the actual number of parameters in the exported
* function
*/
#define
RETURN_ERROR_IF_WRONG_NARGS
(
r
,
nargs
,
ACTUAL_NARGS
) \
if (nargs != ACTUAL_NARGS) { \
r.type = INVALID_VALUE; \
return r; \
}
#define
RETURN_ERROR_IF_NONNUMERIC
(
r
,
arg
) \
if (arg.type != CMPLX && arg.type != INTGR) { \
r.type = INVALID_VALUE; \
return r; \
}
__inline__
static
double
RVAL
(
struct
value
v
)
{
if
(
v
.
type
==
CMPLX
)
return
v
.
v
.
cmplx_val
.
real
;
else
if
(
v
.
type
==
INTGR
)
return
(
double
)
v
.
v
.
int_val
;
else
return
0
;
/* precluded by sanity check above */
}
__inline__
static
int
IVAL
(
struct
value
v
)
{
if
(
v
.
type
==
CMPLX
)
return
(
int
)
v
.
v
.
cmplx_val
.
real
;
else
if
(
v
.
type
==
INTGR
)
return
v
.
v
.
int_val
;
else
return
0
;
/* precluded by sanity check above */
}
#undef
NaN
#endif
/* GNUPLOT_PLUGIN_H */
Back
|
FazBrowse Home
|
New Git URL