source: trunk/yat/utility/utility.h @ 687

Last change on this file since 687 was 687, checked in by Jari Häkkinen, 15 years ago

Clean up of namespace comments.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 2.2 KB
Line 
1#ifndef _theplu_yat_utility_utility_
2#define _theplu_yat_utility_utility_
3
4// $Id: utility.h 687 2006-10-16 23:51:10Z jari $
5
6/*
7  Copyright (C) 2005 Jari Häkkinen, Peter Johansson, Markus Ringnér
8  Copyright (C) 2006 Jari Häkkinen
9
10  This file is part of the yat library, http://lev.thep.lu.se/trac/yat
11
12  The yat library is free software; you can redistribute it and/or
13  modify it under the terms of the GNU General Public License as
14  published by the Free Software Foundation; either version 2 of the
15  License, or (at your option) any later version.
16
17  The yat library is distributed in the hope that it will be useful,
18  but WITHOUT ANY WARRANTY; without even the implied warranty of
19  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20  General Public License for more details.
21
22  You should have received a copy of the GNU General Public License
23  along with this program; if not, write to the Free Software
24  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
25  02111-1307, USA.
26*/
27
28///
29/// @file utility/utility.h
30///
31/// @brief Some useful functions are placed here
32///
33
34#include <string>
35#include <utility>
36#include <vector>
37
38namespace theplu {
39namespace yat {
40namespace utility {
41
42  class vector;
43
44  ///
45  /// @return true if string is a double
46  ///
47  bool is_double(const std::string&);
48
49
50  ///
51  /// @return true if string is a float
52  ///
53  bool is_float(const std::string&);
54
55  ///
56  /// @return true if string is an int
57  ///
58  bool is_int(const std::string&);
59
60  ///
61  /// @return true if string is "nan" (case-insensitive)
62  ///
63  bool is_nan(const std::string& s);
64
65  /**
66     This function returns the indices of the minimum and maximum
67     values in the sub-vector (defined by \a subset), storing them in
68     imin and imax. When there are several equal minimum or maximum
69     elements then the lowest indices are returned. The returned index
70     is the index from the complete vector (not the sub-vector)
71
72     @return Index corresponding to the smallest and largest value.
73
74     @note If \a subset is emtpy, the result is undefined.
75  */
76  std::pair<size_t,size_t> minmax_index(const vector& vec,
77                                        const std::vector<size_t>& subset);
78
79  /**
80     Randomly shuffles the elements in vector \a invec
81  */
82  void shuffle(vector& invec); 
83
84}}} // of namespace utility, yat, and theplu
85
86#endif
Note: See TracBrowser for help on using the repository browser.