yat/classifier/DataLookupWeighted1D.h

Code
Comments
Other
Rev Date Author Line
4200 19 Aug 22 peter 1 #ifndef _theplu_yat_classifier_dataLookup_weighted_1D_
4200 19 Aug 22 peter 2 #define _theplu_yat_classifier_dataLookup_weighted_1D_
622 05 Sep 06 peter 3
622 05 Sep 06 peter 4 // $Id$
675 10 Oct 06 jari 5
622 05 Sep 06 peter 6 /*
2119 12 Dec 09 peter 7   Copyright (C) 2006 Jari Häkkinen, Peter Johansson
4359 23 Aug 23 peter 8   Copyright (C) 2007 Peter Johansson, Markus Ringnér
4359 23 Aug 23 peter 9   Copyright (C) 2008 Jari Häkkinen, Peter Johansson, Markus Ringnér
4359 23 Aug 23 peter 10   Copyright (C) 2009 Peter Johansson
622 05 Sep 06 peter 11
1437 25 Aug 08 peter 12   This file is part of the yat library, http://dev.thep.lu.se/yat
622 05 Sep 06 peter 13
675 10 Oct 06 jari 14   The yat library is free software; you can redistribute it and/or
675 10 Oct 06 jari 15   modify it under the terms of the GNU General Public License as
1486 09 Sep 08 jari 16   published by the Free Software Foundation; either version 3 of the
675 10 Oct 06 jari 17   License, or (at your option) any later version.
622 05 Sep 06 peter 18
675 10 Oct 06 jari 19   The yat library is distributed in the hope that it will be useful,
675 10 Oct 06 jari 20   but WITHOUT ANY WARRANTY; without even the implied warranty of
675 10 Oct 06 jari 21   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
622 05 Sep 06 peter 22   General Public License for more details.
622 05 Sep 06 peter 23
622 05 Sep 06 peter 24   You should have received a copy of the GNU General Public License
1487 10 Sep 08 jari 25   along with yat. If not, see <http://www.gnu.org/licenses/>.
622 05 Sep 06 peter 26 */
622 05 Sep 06 peter 27
1090 14 Feb 08 peter 28 #include "MatrixLookupWeighted.h"
1111 20 Feb 08 markus 29 #include "yat/utility/Container2DIterator.h"
1088 14 Feb 08 peter 30 #include "yat/utility/StrideIterator.h"
890 25 Sep 07 markus 31
1088 14 Feb 08 peter 32 #include <utility>
622 05 Sep 06 peter 33 #include <vector>
622 05 Sep 06 peter 34
622 05 Sep 06 peter 35 namespace theplu {
680 11 Oct 06 jari 36 namespace yat {
4200 19 Aug 22 peter 37 namespace classifier {
622 05 Sep 06 peter 38
622 05 Sep 06 peter 39   ///
767 22 Feb 07 peter 40   /// @brief Class for general weighted vector view.
622 05 Sep 06 peter 41   ///
622 05 Sep 06 peter 42   /// @see MatrixLookupWeighted
622 05 Sep 06 peter 43   ///
622 05 Sep 06 peter 44   class DataLookupWeighted1D
622 05 Sep 06 peter 45   {
4200 19 Aug 22 peter 46
622 05 Sep 06 peter 47   public:
1552 06 Oct 08 peter 48     /**
1552 06 Oct 08 peter 49        value_type is DataWeight
1552 06 Oct 08 peter 50
1552 06 Oct 08 peter 51        \since New in yat 0.5
1552 06 Oct 08 peter 52      */
1552 06 Oct 08 peter 53     typedef utility::DataWeight value_type;
1552 06 Oct 08 peter 54
1552 06 Oct 08 peter 55     /**
1552 06 Oct 08 peter 56        const_reference type is const DataWeight
1552 06 Oct 08 peter 57
1552 06 Oct 08 peter 58        \since New in yat 0.5
1552 06 Oct 08 peter 59      */
1552 06 Oct 08 peter 60     typedef const utility::DataWeight const_reference;
1552 06 Oct 08 peter 61
1088 14 Feb 08 peter 62     /// 'Read Only' iterator
1526 24 Sep 08 peter 63     typedef MatrixLookupWeighted::const_row_iterator const_iterator;
622 05 Sep 06 peter 64
622 05 Sep 06 peter 65     ///
4200 19 Aug 22 peter 66     /// Constructor.
622 05 Sep 06 peter 67     ///
1268 09 Apr 08 peter 68     /// \param m MatrixLookupWeighted to look into
648 14 Sep 06 peter 69     /// @param row_vector if true (default) DataLookup1D is
1090 14 Feb 08 peter 70     /// looking into a row of MatrixLookupWeighted, otherwise looking into
648 14 Sep 06 peter 71     /// a column. @param index which row/column to look into.
622 05 Sep 06 peter 72     ///
4200 19 Aug 22 peter 73     DataLookupWeighted1D(const MatrixLookupWeighted& m, const size_t index,
622 05 Sep 06 peter 74                          const bool row_vector);
622 05 Sep 06 peter 75
622 05 Sep 06 peter 76     ///
622 05 Sep 06 peter 77     /// Copy constructor
622 05 Sep 06 peter 78     ///
622 05 Sep 06 peter 79     DataLookupWeighted1D(const DataLookupWeighted1D&);
622 05 Sep 06 peter 80
622 05 Sep 06 peter 81     ///
622 05 Sep 06 peter 82     /// Construct DataLookup1D that owns its underlying matrix. Object
1090 14 Feb 08 peter 83     /// has size \a size and all its element is equal to \a value.
622 05 Sep 06 peter 84     ///
4200 19 Aug 22 peter 85     DataLookupWeighted1D(const size_t size, double value=0, double weight=1);
622 05 Sep 06 peter 86
622 05 Sep 06 peter 87     ///
648 14 Sep 06 peter 88     /// @brief Destructor
622 05 Sep 06 peter 89     ///
622 05 Sep 06 peter 90     virtual ~DataLookupWeighted1D();
622 05 Sep 06 peter 91
720 26 Dec 06 jari 92     /**
966 11 Oct 07 peter 93        \return 'Read Only' iterator to beginning of DataLookupWeighted1D.
890 25 Sep 07 markus 94      */
890 25 Sep 07 markus 95     const_iterator begin() const;
890 25 Sep 07 markus 96
890 25 Sep 07 markus 97     /**
720 26 Dec 06 jari 98        \return data(i)
720 26 Dec 06 jari 99     */
720 26 Dec 06 jari 100     double data(const size_t i) const;
4200 19 Aug 22 peter 101
890 25 Sep 07 markus 102     /**
966 11 Oct 07 peter 103        \return 'Read Only' iterator to end of DataLookupWeighted1D.
890 25 Sep 07 markus 104      */
890 25 Sep 07 markus 105     const_iterator end() const;
720 26 Dec 06 jari 106
622 05 Sep 06 peter 107     ///
648 14 Sep 06 peter 108     /// @return number of elements
622 05 Sep 06 peter 109     ///
720 26 Dec 06 jari 110     size_t size(void) const;
622 05 Sep 06 peter 111
622 05 Sep 06 peter 112     ///
622 05 Sep 06 peter 113     /// @return weight(i)
622 05 Sep 06 peter 114     ///
720 26 Dec 06 jari 115     double weight(const size_t i) const;
622 05 Sep 06 peter 116
1552 06 Oct 08 peter 117     /**
1552 06 Oct 08 peter 118        \brief access operator
1552 06 Oct 08 peter 119      */
1552 06 Oct 08 peter 120     const_reference operator()(const size_t i) const;
622 05 Sep 06 peter 121
622 05 Sep 06 peter 122   private:
622 05 Sep 06 peter 123     const DataLookupWeighted1D& operator=(const DataLookupWeighted1D&);
622 05 Sep 06 peter 124
622 05 Sep 06 peter 125     const bool column_vector_;
622 05 Sep 06 peter 126     const size_t index_;
622 05 Sep 06 peter 127     const MatrixLookupWeighted* matrix_;
622 05 Sep 06 peter 128     const bool owner_;
4200 19 Aug 22 peter 129
622 05 Sep 06 peter 130   };
622 05 Sep 06 peter 131
779 05 Mar 07 peter 132   ///
779 05 Mar 07 peter 133   /// @return sum of weights
779 05 Mar 07 peter 134   ///
1883 31 Mar 09 peter 135   /// \relatesalso DataLookupWeighted1D
1883 31 Mar 09 peter 136   ///
779 05 Mar 07 peter 137   double sum_weight(const DataLookupWeighted1D&);
779 05 Mar 07 peter 138
680 11 Oct 06 jari 139 }}} // of namespace classifier, yat, and theplu
622 05 Sep 06 peter 140
622 05 Sep 06 peter 141 #endif