#include <config.h>
#include <functions/ScalarFunc.h>
#include <sarray/SArray.h>

using std::vector;
using std::string;

ScalarFunc::ScalarFunc (string const &name, unsigned int npar)
  : Function (name, npar)
{
}

void
ScalarFunc::evaluate (SArray & value, vector <SArray const *> const &args)
  const
{
  //double svalue = evaluate (args);
  //value.setValue (&svalue, 1);
  value.setValue(eval(args), 0);
}

Index ScalarFunc::dim (vector <SArray const *> const &args) const
{
  return Index(1);
}

bool 
ScalarFunc::checkParameterDim (vector <SArray const *> const &args) const
{
  for (unsigned int i = 0; i < args.size() ; ++i) {
    if (args[i]->length () != 1)
      return false;
  }
  return true;
}


syntax highlighted by Code2HTML, v. 0.9.1