\usepackage{ exscale, latexsym, amsthm, amssymb, amsmath,hyperref,color, ifthen,nameref}
\usepackage[ansinew]{inputenc}
\usepackage{xspace}

\hypersetup{
	pdfpagemode = None, pdfpagelayout = OneColumn, pdfstartpage = 1, pdfstartview = FitH,
	colorlinks = true, urlcolor = blue, linkcolor = black, citecolor = black
}

\newcounter{off}
\setcounter{off}{1}
\newcommand{\defaultcodefile}{./Cookbook.java}
\newcommand{\codefile}{\defaultcodefile}

\setlength{\textwidth}{150mm}
\setlength{\oddsidemargin}{10mm}

\renewcommand{\thesection}{\arabic{section}}

\newcommand{\jstacs}{\textsc{Jstacs}}
\newcommand{\APIhome}{http://www.jstacs.de/api-2.0/}
\newcommand{\link}[2]{\href{\APIhome/de/jstacs/#1/#2.html}{#2}}

%concrete links
\newcommand{\SubclassFinder}{\link{utils}{SubclassFinder}}
\newcommand{\Singleton}{\link{}{Singleton}}
\newcommand{\Storable}{\link{}{Storable}}
\newcommand{\XMLParser}{\link{io}{XMLParser}}
\newcommand{\Parameter}{\link{parameters}{Parameter}}
\newcommand{\SimpleParameter}{\link{parameters}{SimpleParameter}}
\newcommand{\EnumParameter}{\link{parameters}{EnumParameter}}
\newcommand{\SelectionParameter}{\link{parameters}{SelectionParameter}}
\newcommand{\FileParameter}{\link{parameters}{FileParameter}}
\newcommand{\RangeParameter}{\link{parameters}{RangeParameter}}
\newcommand{\NumberValidator}{\link{parameters/validation}{NumberValidator}}
\newcommand{\ParameterSet}{\link{parameters}{ParameterSet}}
\newcommand{\InstanceParameterSet}{\link{parameters}{InstanceParameterSet}}
\newcommand{\SimpleParameterSet}{\link{parameters}{SimpleParameterSet}}
\newcommand{\SequenceScoringParameterSet}{\link{parameters}{SequenceScoringParameterSet}}

\newcommand{\Result}{\link{results}{Result}}
\newcommand{\NumericalResult}{\link{results}{NumericalResult}}
\newcommand{\CategoricalResult}{\link{results}{CategoricalResult}}
\newcommand{\ResultSet}{\link{results}{ResultSet}}
\newcommand{\MeanResultSet}{\link{results}{MeanResultSet}}
\newcommand{\NumericalResultSet}{\link{results}{NumericalResultSet}}
\newcommand{\ListResult}{\link{results}{ListResult}}

\newcommand{\DNAAlphabet}{\link{data/alphabets}{DNAAlphabet}}
\newcommand{\ComplementableDiscreteAlphabet}{\link{data/alphabets}{ComplementableDiscreteAlphabet}}
\newcommand{\SparseSequence}{\link{data/sequences}{SparseSequence}}
\newcommand{\DiscreteAlphabet}{\link{data/alphabets}{DiscreteAlphabet}}
\newcommand{\Alphabet}{\link{data/alphabets}{Alphabet}}
\newcommand{\AlphabetContainer}{\link{data}{AlphabetContainer}}
\newcommand{\Sequence}{\link{data/sequences}{Sequence}}
\newcommand{\DataSet}{\link{data}{DataSet}}
\newcommand{\DNADataSet}{\link{data}{DNADataSet}}
\newcommand{\PermutedSequence}{\link{data/sequences}{PermutedSequence}}
\newcommand{\SequenceAnnotation}{\link{data/sequences/annotation}{SequenceAnnotation}}
\newcommand{\SequenceAnnotationParser}{\link{data/sequences/annotation}{SequenceAnnotationParser}}
\newcommand{\SplitSequenceAnnotationParser}{\link{data/sequences/annotation}{SplitSequenceAnnotationParser}}
\newcommand{\SimpleSequenceAnnotationParser}{\link{data/sequences/annotation}{SimpleSequenceAnnotationParser}}
\newcommand{\StringExtractor}{\link{io}{StringExtractor}}
\newcommand{\SparseStringExtractor}{\link{io}{SparseStringExtractor}}
\newcommand{\TrainSM}{\link{sequenceScores/statisticalModels/trainable}{TrainableStatisticalModel}}
\newcommand{\TrainSMFactory}{\link{sequenceScores/statisticalModels/trainable}{TrainSMFactory}}
\newcommand{\AbstractTrainSM}{\link{sequenceScores/statisticalModels/trainable}{AbstractTrainSM}}
\newcommand{\StrandTrainSM}{\link{sequenceScores/statisticalModels/trainable/mixture}{StrandTrainSM}}
\newcommand{\StrandDiffSM}{\link{sequenceScores/statisticalModels/differentiable/mixture}{StrandDiffSM}}
\newcommand{\IndependentProductDiffSM}{\link{sequenceScores/statisticalModels/differentiable}{IndependentProductDiffSM}}


\newcommand{\HomogeneousModel}{\link{sequenceScores/statisticalModels/trainable/discrete/homogeneous}{HomogeneousModel}}
\newcommand{\HMMFactory}{\link{sequenceScores/statisticalModels/trainable/hmm}{HMMFactory}}
\newcommand{\HigherOrderHMM}{\link{sequenceScores/statisticalModels/trainable/hmm/models}{HigherOrderHMM}}
\newcommand{\TransitionElement}{\link{sequenceScores/statisticalModels/trainable/hmm/transitions/elements}{TransitionElement}}


\newcommand{\DiffSM}{\link{sequenceScores/statisticalModels/differentiable}{DifferentiableStatisticalModel}}
\newcommand{\DiffSS}{\link{sequenceScores/differentiable}{DifferentiableSequenceScore}}
\newcommand{\AbstractDiffSS}{\link{sequenceScores/differentiable}{AbstractDifferentiableSequenceScore}}
\newcommand{\AbstractDiffSM}{\link{sequenceScores/statisticalModels/differentiable}{AbstractDifferentiableStatisticalModel}}


\newcommand{\SeqScore}{\link{sequenceScores}{SequenceScore}}
\newcommand{\StatMod}{\link{sequenceScores/statisticalModels}{StatisticalModel}}

\newcommand{\AbstractClassifier}{\link{classifiers}{AbstractClassifier}}
\newcommand{\AbstractScoreBasedClassifier}{\link{classifiers}{AbstractScoreBasedClassifier}}
\newcommand{\TrainSMBasedClassifier}{\link{classifiers/trainSMBased}{TrainSMBasedClassifier}}
\newcommand{\GenDisMixClassifier}{\link{classifiers/differentiableSequenceScoreBased/gendismix}{GenDisMixClassifier}}

\newcommand{\PerformanceMeasureParameterSet}{\link{classifiers/performanceMeasures}{PerformanceMeasureParameterSet}}
\newcommand{\NumericalPerformanceMeasureParameterSet}{\link{classifiers/performanceMeasures}{NumericalPerformanceMeasureParameterSet}}
\newcommand{\AbstractPerformanceMeasure}{\link{classifiers/performanceMeasures}{AbstractPerformanceMeasure}}

\newcommand{\ClassifierAssessment}{\link{classifiers/assessment}{ClassifierAssessment}}
\newcommand{\KFoldCrossValidation}{\link{classifiers/assessment}{KFoldCrossValidation}}
\newcommand{\RepeatedHoldOutExperiment}{\link{classifiers/assessment}{RepeatedHoldOutExperiment}}
\newcommand{\KFoldCrossValidationAssessParameterSet}{\link{classifiers/assessment}{KFoldCrossValidationAssessParameterSet}}

\newcommand{\NumericalDifferentiableFunction}{\link{algorithms/optimization}{NumericalDifferentiableFunction}}
\newcommand{\DifferentiableFunction}{\link{algorithms/optimization}{DifferentiableFunction}}
\newcommand{\TerminationCondition}{\link{algorithms/optimization/termination}{TerminationCondition}}

\newcommand{\CombinedCondition}{\link{algorithms/optimization/termination}{CombinedCondition}}

\newcommand{\Costs}{\link{algorithms/alignment/cost}{Costs}}
\newcommand{\Alignment}{\link{algorithms/alignment}{Alignment}}
\newcommand{\AlignmentType}{\link{algorithms/alignment}{Alignment.AlignmentType}}
\newcommand{\AffineCosts}{\link{algorithms/alignment/cost}{AffineCosts}}

\newcommand{\REnvironment}{\link{utils}{REnvironment}}
\newcommand{\ToolBox}{\link{utils}{ToolBox}}
\newcommand{\Normalisation}{\link{utils}{Normalisation}}
\newcommand{\SafeOutputStream}{\link{utils}{SafeOutputStream}}
\newcommand{\ArrayHandler}{\link{io}{ArrayHandler}}