#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: Wed Jun 25 08:48:51 2008
Last generated: 2008-06-25 08:48
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.