#include <iostream>
#include "TFormula.h"
#include "TString.h"
#include "TMath.h"
#include "Riostream.h"
#include "TMVA/TActivationTanh.h"
static const Int_t  UNINITIALIZED = -1;
ClassImp(TMVA::TActivationTanh)
TMVA::TActivationTanh::TActivationTanh()
{
   
   fEqn           = new TFormula( "tanh",    "TMath::TanH(x)" );
   fEqnDerivative = new TFormula( "derivative", "1-(TMath::TanH(x))^2" ); 
}
TMVA::TActivationTanh::~TActivationTanh()
{
   
   if (fEqn != NULL) delete fEqn;
   if (fEqnDerivative != NULL) delete fEqnDerivative;
}
Double_t TMVA::TActivationTanh::Eval( Double_t arg )
{
   
   if (fEqn == NULL) return UNINITIALIZED;
   return fEqn->Eval(arg);
}
Double_t TMVA::TActivationTanh::EvalDerivative( Double_t arg )
{
   
   if (fEqnDerivative == NULL) return UNINITIALIZED;
   return fEqnDerivative->Eval(arg);
}
TString TMVA::TActivationTanh::GetExpression()
{
   
   TString expr = "";
   if (fEqn == NULL) expr += "<null>";
   else              expr += fEqn->GetExpFormula();
   expr += "\t\t";
   if (fEqnDerivative == NULL) expr += "<null>";
   else                        expr += fEqnDerivative->GetExpFormula();
   return expr;
}
void TMVA::TActivationTanh::MakeFunction(std::ostream& fout, const TString& fncName) 
{
   
   fout << "double " << fncName << "(double x) const" << std::endl;
   fout << "{" << std::endl;
   fout << "   // hyperbolic tan" << std::endl;
   fout << "   return tanh(x);" << std::endl;
   fout << "}" << std::endl;
   fout << " " << std::endl;
}
Last change: Tue May 13 17:21:06 2008
Last generated: 2008-05-13 17:21
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.