/*
  This file is part of CDO. CDO is a collection of Operators to manipulate and analyse Climate model Data.

  Author: Uwe Schulzweida

*/
#ifndef EXPR_FUN_H
#define EXPR_FUN_H

#include <cstddef>
#include "field.h"
#include "expr.h"

NodeType *expr_con_con(int oper, const NodeType *p1, const NodeType *p2);
void oper_expr_con_var(int oper, bool hasMV, size_t n, double mv, double *odat, double cval, double const *idat);
void oper_expr_var_con(int oper, bool hasMV, size_t n, double mv, double *odat, double const *idat, double cval);
void oper_expr_var_var(int oper, bool hasMV, size_t n, double mv1, double mv2, double *odat, double const *idat1,
                       double const *idat2);

void fld_field_init(Field &field, size_t numMissVals, double missval, size_t ngp, double const *array, double const *w);
void vert_weights(int zaxisID, size_t nlev, Varray<double> &weights);

#endif
