Logo ROOT  
Reference Guide
CpuMatrix.cxx
Go to the documentation of this file.
1// @(#)root/tmva/tmva/dnn:$Id$
2// Author: Simon Pfreundschuh 19/07/16
3
4/*************************************************************************
5 * Copyright (C) 2016, Simon Pfreundschuh *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12/////////////////////////////////////////////
13// Implementation of the TCpuMatrix class. //
14/////////////////////////////////////////////
15
17
18namespace TMVA {
19namespace DNN {
20
21//____________________________________________________________________________
22template<typename AReal>
23TCpuMatrix<AReal>::TCpuMatrix(size_t nRows, size_t nCols)
24 : fBuffer(nRows * nCols), fNCols(nCols), fNRows(nRows)
25{
26 Initialize();
27 for (size_t j = 0; j < fNCols; j++) {
28 for (size_t i = 0; i < fNRows; i++) {
29 (*this)(i, j) = 0;
30 }
31 }
32}
33
34//____________________________________________________________________________
35template<typename AReal>
37 : fBuffer(B.GetNoElements()), fNCols(B.GetNcols()), fNRows(B.GetNrows())
38{
39 Initialize();
40 for (size_t j = 0; j < fNCols; j++) {
41 for (size_t i = 0; i < fNRows; i++) {
42 (*this)(i,j) = B(i,j);
43 }
44 }
45}
46
47//____________________________________________________________________________
48template<typename AReal>
49TCpuMatrix<AReal>::TCpuMatrix(const TCpuBuffer<AReal> & buffer,
50 size_t m,
51 size_t n)
52 : fBuffer(buffer), fNCols(n), fNRows(m)
53{
54 Initialize();
55}
56
57//____________________________________________________________________________
58template<typename AReal>
59TCpuMatrix<AReal>::operator TMatrixT<AReal>() const
60{
61 TMatrixT<AReal> B(fNRows, fNCols);
62
63 for (size_t j = 0; j < fNCols; j++) {
64 for (size_t i = 0; i < fNRows; i++) {
65 B(i,j) = (*this)(i, j);
66 }
67 }
68 return B;
69}
70
71
72//____________________________________________________________________________
73template<typename AReal>
75{
76 if (fNRows > fOnes.size()) {
77 fOnes.reserve(fNRows);
78 size_t ifirst = fOnes.size();
79 for (size_t i = ifirst; i < fNRows; i++) {
80 fOnes.push_back(1.0);
81 }
82 }
83}
84
85//____________________________________________________________________________
86template<typename AReal>
88{
89 if (n > fOnes.size()) {
90 fOnes.reserve(n);
91 size_t ifirst = fOnes.size();
92 for (size_t i = ifirst; i < n; i++) {
93 fOnes.push_back(1.0);
94 }
95 }
96}
97
98// Explicit instantiations.
99template class TCpuMatrix<Float_t>;
100template class TCpuMatrix<Double_t>;
101
102} // namespace DNN
103} // namespace TMVA
The TCpuMatrix class.
Definition: CpuMatrix.h:87
static void InitializeOneVector(size_t n)
Definition: CpuMatrix.cxx:87
const Int_t n
Definition: legend1.C:16
static double B[]
create variable transformations
auto * m
Definition: textangle.C:8