54 TMVA::SVKernelMatrix::SVKernelMatrix()
58 fLogger( new MsgLogger(
"ResultsRegression", kINFO) )
65 TMVA::SVKernelMatrix::SVKernelMatrix( std::vector<TMVA::SVEvent*>* inputVectors, SVKernelFunction* kernelFunction )
66 : fSize(inputVectors->size()),
67 fKernelFunction(kernelFunction),
68 fLogger( new MsgLogger(
"SVKernelMatrix", kINFO) )
70 fSVKernelMatrix =
new Float_t*[fSize];
72 for (UInt_t i = 0; i < fSize; i++) fSVKernelMatrix[i] =
new Float_t[i+1];
74 Log() << kFATAL <<
"Input data too large. Not enough memory to allocate memory for Support Vector Kernel Matrix. Please reduce the number of input events or use a different method."<<Endl;
78 for (UInt_t i = 0; i < fSize; i++) {
79 for (UInt_t j = 0; j <=i; j++) {
80 fSVKernelMatrix[i][j] = fKernelFunction->Evaluate((*inputVectors)[i], (*inputVectors)[j]);
88 TMVA::SVKernelMatrix::~SVKernelMatrix()
90 for (UInt_t i = fSize -1; i > 0; i--) {
91 delete[] fSVKernelMatrix[i];
92 fSVKernelMatrix[i] = 0;
94 delete[] fSVKernelMatrix;
101 Float_t* TMVA::SVKernelMatrix::GetLine( UInt_t line )
103 Float_t* fLine = NULL;
108 fLine =
new Float_t[fSize];
109 for( UInt_t i = 0; i <line; i++)
110 fLine[i] = fSVKernelMatrix[line][i];
111 for( UInt_t i = line; i < fSize; i++)
112 fLine[i] = fSVKernelMatrix[i][line];
120 Float_t TMVA::SVKernelMatrix::GetElement(UInt_t i, UInt_t j)
122 if (i > j)
return fSVKernelMatrix[i][j];
123 else return fSVKernelMatrix[j][i];