new CDEF functions for predictions PREDICT and PREDICTSIGMA
[rrdtool.git] / src / rrd_rpncalc.h
index 516718c..10c8edd 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * RRDtool 1.2.23  Copyright by Tobi Oetiker, 1997-2007
+ * RRDtool 1.3.2  Copyright by Tobi Oetiker, 1997-2008
  ****************************************************************************
  * rrd_rpncalc.h  RPN calculator functions
  ****************************************************************************/
@@ -16,9 +16,10 @@ enum op_en { OP_NUMBER = 0, OP_VARIABLE, OP_INF, OP_PREV, OP_NEGINF,
     OP_COS, OP_LOG, OP_EXP, OP_LT, OP_LE, OP_GT, OP_GE, OP_EQ, OP_IF,
     OP_MIN, OP_MAX, OP_LIMIT, OP_FLOOR, OP_CEIL,
     OP_UN, OP_END, OP_LTIME, OP_NE, OP_ISINF, OP_PREV_OTHER, OP_COUNT,
-    OP_ATAN, OP_SQRT, OP_SORT, OP_REV, OP_TREND,
+    OP_ATAN, OP_SQRT, OP_SORT, OP_REV, OP_TREND, OP_TRENDNAN,
     OP_ATAN2, OP_RAD2DEG, OP_DEG2RAD,
-    OP_AVG, OP_ABS
+    OP_PREDICT,OP_PREDICTSIGMA,
+    OP_AVG, OP_ABS, OP_ADDNAN
 };
 
 typedef struct rpnp_t {
@@ -36,6 +37,9 @@ typedef struct rpn_cdefds_t {
     short     val;      /* used by OP_NUMBER and OP_VARIABLE */
 } rpn_cdefds_t;
 
+#define MAX_VNAME_LEN 255
+#define DEF_NAM_FMT "%255[-_A-Za-z0-9]"
+
 /* limit imposed by sizeof(rpn_cdefs_t) and rrd.ds_def.par */
 #define DS_CDEF_MAX_RPN_NODES 26
 
@@ -46,9 +50,9 @@ typedef struct rpnstack_t {
 } rpnstack_t;
 
 void      rpnstack_init(
-    rpnstack_t * rpnstack);
+    rpnstack_t *rpnstack);
 void      rpnstack_free(
-    rpnstack_t * rpnstack);
+    rpnstack_t *rpnstack);
 
 void      parseCDEF_DS(
     const char *def,
@@ -59,14 +63,14 @@ long      lookup_DS(
     char *ds_name);
 
 short     rpn_compact(
-    rpnp_t * rpnp,
-    rpn_cdefds_t ** rpnc,
+    rpnp_t *rpnp,
+    rpn_cdefds_t **rpnc,
     short *count);
 rpnp_t   *rpn_expand(
-    rpn_cdefds_t * rpnc);
+    rpn_cdefds_t *rpnc);
 void      rpn_compact2str(
-    rpn_cdefds_t * rpnc,
-    ds_def_t * ds_def,
+    rpn_cdefds_t *rpnc,
+    ds_def_t *ds_def,
     char **str);
 rpnp_t   *rpn_parse(
     void *key_hash,
@@ -74,10 +78,10 @@ rpnp_t   *rpn_parse(
     long      (*lookup) (void *,
                          char *));
 short     rpn_calc(
-    rpnp_t * rpnp,
-    rpnstack_t * rpnstack,
+    rpnp_t *rpnp,
+    rpnstack_t *rpnstack,
     long data_idx,
-    rrd_value_t * output,
+    rrd_value_t *output,
     int output_idx);
 
 #endif