# include "../DataTransformer.hh"

# define MINDIV 1e-20

class Divider :public UpdateFunctor<2> {
public:
  Divider(std::pair<Symbol, ArgList const *> const &args)
    :UpdateFunctor<2>(args) {}
  virtual ~Divider() {}

private:
  double compute(dbEntry **args) {
    double divided = args[0]->getValue();
    double divider = args[1]->getValue();
    
    if( divider<0 ) {
      divided = -divided;
      divider = -divider;
    }
    // This is done to avoid the division by 0;
    if( divider<MINDIV )
      divider = MINDIV;

    return divided/divider;
  }
}; // Divider

DevOpDeclare<Divider> div_declare("div");

