/***************************************************************************** * * * SERIES.H Copyright (C) 1997-2020 DSP Development Corporation * * All Rights Reserved * * * * Author: Randy Race * * * * Synopsis: Data type and misc macros * * * * Revisions: 7 Jun 1997 RRR Creation * * 29 Dec 1998 RRR Item types and extended styles * * 30 Nov 2020 RRR Logicals * * * *****************************************************************************/ #ifndef _INC_SERIES_H #define _INC_SERIES_H /* type of variables */ #define UNSPECIFIED_VARIABLE 0 /* temporary unspecified type */ #define GLOBAL_VARIABLE 1 /* global */ #define LOCAL_VARIABLE 2 /* local to a user defined function */ #define USER_FUNCTION 3 /* user defined function */ #define HOT_VARIABLE 4 /* global wired into the dependency graph */ #define FORMAL_VARIABLE 5 /* formal parameter to user defined function */ /* argument and variable value types */ #define INTEGER_VALUE 1 #define REAL_VALUE 2 #define COMPLEX_VALUE 3 #define STRING_VALUE 4 #define SERIES_VALUE 5 #define WINDOW_VALUE 6 #define LOGICAL_VALUE 119 #define UNSPECIFIED_VALUE (-11) #define UNDEFINED_VALUE (-5) /* variable type tests */ #define IS_INTEGER(v) (argtype(v)==INTEGER_VALUE) #define IS_REAL(v) (argtype(v)==REAL_VALUE) #define IS_COMPLEX(v) (argtype(v)==COMPLEX_VALUE) #define IS_STRING(v) (argtype(v)==STRING_VALUE) #define IS_SERIES(v) (argtype(v)==SERIES_VALUE) #define IS_WINDOW(v) (argtype(v)==WINDOW_VALUE) #define IS_LOGICAL(v) (argtype(v)==LOGICAL_VALUE) #define IS_ARG_UNSPECIFIED(v) (argtype(v)==UNSPECIFIED_VALUE) #define IS_NUMERIC(v) (IS_INTEGER(v)||IS_REAL(v)||IS_COMPLEX(v)) #define IS_ARRAY(v) (IS_SERIES(v)||IS_WINDOW(v)) #define IS_SCALAR(v) (IS_NUMERIC(v)||IS_LOGICAL(v)) #define IS_NUMERICTYPE(v) (IS_ARRAY(v)||IS_NUMERIC(v)) /* unspecified formal variable */ #define IS_UNSPECIFIED(v) (valuetype(v,2)==UNSPECIFIED_VALUE) /* undefined local variable */ #define IS_UNDEFINED(v) (valuetype(v,2)==UNDEFINED_VALUE) /* extended plot styles */ #define EX_BAR_STYLE (0x0001) #define EX_BAR_TOPCLR (0x0002) #define EX_WIN_NOSCALE (0x0004) #define EX_BAR_CENTER (0x0008) #define EX_STEP_CENTER (0x0010) #define EX_BAR_GAP (0x0020) #define EX_BAR_NOBORDER (0x0040) #define EX_FULL_BASELINE (0x0080) #define EX_LABEL_STICKY (0x0100) #define EX_WIN_X_NOSCALE (0x0200) #define EX_WIN_Y_NOSCALE (0x0400) #define EX_AUTOY_POINTS (0x0800) /* series item types */ #define ITEM_TYPE_SERIES (0) #define ITEM_TYPE_XY (1) #define ITEM_TYPE_LIST (2) #define ITEM_TYPE_ERRORBAR (3) #define ITEM_TYPE_EQUIVOL (5) #define ITEM_TYPE_YSYMPLOT (6) #define ITEM_TYPE_XYSYMPLOT (7) #define ITEM_TYPE_XYZ (8) #define ISERRORBAR(series) (itemtype(series) == ITEM_TYPE_ERRORBAR) #define ISEQUIVOL(series) (itemtype(series) == ITEM_TYPE_EQUIVOL) #define ISLIST(series) (itemtype(series) == ITEM_TYPE_LIST) #define ISYSYMPLOT(series) (itemtype(series) == ITEM_TYPE_YSYMPLOT) #define ISXYSYMPLOT(series) (itemtype(series) == ITEM_TYPE_XYSYMPLOT) #define ISSYMBOLPLOT(series) (ISYSYMPLOT(series) || ISXYSYMPLOT(series)) #define ISXYSERIES(series) (itemtype(series) == ITEM_TYPE_XY) #define ISXYZSERIES(series) (itemtype(series) == ITEM_TYPE_XYZ) /* useful constants */ #ifndef TRUE #define TRUE 1 #endif #ifndef FALSE #define FALSE 0 #endif #endif /* _INC_SERIES_H */