GUI: Dead kittens.
[gnumeric.git] / src / expr-deriv.h
blob415f608f65eb97bda8cb64c6e824302e2a94f2d7
1 #ifndef GNM_EXPR_DERIV_H_
2 #define GNM_EXPR_DERIV_H_
4 G_BEGIN_DECLS
6 #include "expr.h"
7 #include "numbers.h"
9 /* ------------------------------------------------------------------------- */
11 typedef struct GnmExprDeriv_ GnmExprDeriv;
13 GnmExprDeriv *gnm_expr_deriv_info_new (void);
14 void gnm_expr_deriv_info_free (GnmExprDeriv *deriv);
16 void gnm_expr_deriv_info_set_var (GnmExprDeriv *deriv, GnmEvalPos const *var);
18 /* ------------------------------------------------------------------------- */
20 GnmExpr const *gnm_expr_deriv (GnmExpr const *expr,
21 GnmEvalPos const *ep,
22 GnmExprDeriv *info);
25 GnmExprTop const *gnm_expr_top_deriv (GnmExprTop const *texpr,
26 GnmEvalPos const *ep,
27 GnmExprDeriv *info);
29 GnmExprTop const *gnm_expr_cell_deriv (GnmCell *y, GnmCell *x);
31 gnm_float gnm_expr_cell_deriv_value (GnmCell *y, GnmCell *x);
33 /* ------------------------------------------------------------------------- */
35 GnmExprList *gnm_expr_deriv_collect (GnmExpr const *expr,
36 GnmEvalPos const *ep,
37 GnmExprDeriv *info);
39 typedef GnmExpr const * (*GnmExprDerivHandler) (GnmExpr const *expr,
40 GnmEvalPos const *ep,
41 GnmExprDeriv *info);
42 typedef enum {
43 GNM_EXPR_DERIV_NO_CHAIN = 0x0,
44 GNM_EXPR_DERIV_CHAIN = 0x1
45 } GnmExprDerivFlags;
47 void gnm_expr_deriv_install_handler (GnmFunc *func, GnmExprDerivHandler h,
48 GnmExprDerivFlags flags);
49 void gnm_expr_deriv_uninstall_handler (GnmFunc *func);
50 void _gnm_expr_deriv_shutdown (void);
52 /* ------------------------------------------------------------------------- */
54 G_END_DECLS
56 #endif