aGrUM  0.20.3
a C++ library for (probabilistic) graphical models
hashFunc.h File Reference

Copyright (c) 2005-2021 by Pierre-Henri WUILLEMIN() & Christophe GONZALES() info_at_agrum_dot_org. More...

#include <climits>
#include <string>
#include <type_traits>
#include <utility>
#include <agrum/agrum.h>
#include <agrum/tools/core/refPtr.h>
#include <agrum/tools/core/hashFunc_inl.h>
#include <agrum/tools/core/hashFunc_tpl.h>
+ Include dependency graph for hashFunc.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  gum::HashFuncConst
 Useful constants for hash functions. More...
 
class  gum::HashFuncBase< Key >
 All hash functions should inherit from this class. More...
 
class  gum::HashFuncSmallKey< Key >
 Generic hash functions for numeric keys smaller than or equal to Size. More...
 
class  gum::HashFuncSmallCastKey< Key >
 Generic hash functions for keys castable as Size and whose size is strictly smaller than that of Size. More...
 
class  gum::HashFuncMediumCastKey< Key >
 Generic hash functions for keys castable as Size and whose size is precisely that of Size. More...
 
class  gum::HashFuncLargeCastKey< Key >
 Generic hash functions for keys castable as Size and whose size is precisely twice that of Size. More...
 
class  gum::HashFuncCastKey< Key >
 Generic hash functions for keys castable as Size whose size is either smaller than Size, or equal to that of one or two Size. More...
 
class  gum::dummyHash< Key >
 
class  gum::HashFuncConditionalType<... >
 This class enables to safely define hash functions for types that may or may not already has defined hash functionsThere are types that are defined differently depending on the architecture or the compiler you use. More...
 
struct  gum::HashFuncConditionalType< Key >
 
struct  gum::HashFuncConditionalType< KEY_TYPE, TYPE >
 
struct  gum::HashFuncConditionalType< KEY_TYPE, FIRST_TYPE, OTHER_TYPES... >
 
class  gum::HashFunc< key >
 Class template representing hashing function of LpCol. More...
 
class  gum::HashFunc< std::pair< Key1, Key2 > >
 
class  gum::HashFunc< bool >
 Hash function for booleans. More...
 
class  gum::HashFunc< int >
 Hash function for integers. More...
 
class  gum::HashFunc< unsigned int >
 Hash function for unsigned integers. More...
 
class  gum::HashFunc< long >
 Hash function for long integers. More...
 
class  gum::HashFunc< unsigned long >
 Hash function for unsigned long integers. More...
 
class  gum::HashFunc< typename HashFuncConditionalType< std::size_t, unsigned long, unsigned int, long, int >::type >
 Hash function for std::size_t. More...
 
class  gum::HashFunc< float >
 Hash function for floats. More...
 
class  gum::HashFunc< double >
 Hash function for doubles. More...
 
class  gum::HashFunc< Type *>
 Hash function for pointers. More...
 
class  gum::HashFunc< std::string >
 Hash function for strings. More...
 
class  gum::HashFunc< std::vector< Idx > >
 Hash function for vectors of gum::Idx. More...
 
class  gum::HashFunc< Debug >
 Hash function for gum::Debug. More...
 
class  gum::HashFunc< RefPtr< Type > >
 Hash function for RefPtr. More...
 

Namespaces

 gum
 Copyright (c) 2005-2021 by Pierre-Henri WUILLEMIN() & Christophe GONZALES() info_at_agrum_dot_org.
 

Functions

unsigned int gum::_hashTableLog2_ (const Size nb)
 Returns the size in bits - 1 necessary to store the smallest power of 2 greater than or equal to nb. More...
 

Detailed Description

Copyright (c) 2005-2021 by Pierre-Henri WUILLEMIN() & Christophe GONZALES() info_at_agrum_dot_org.

This library is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library. If not, see http://www.gnu.org/licenses/.

Classes providing basic hash functions for hash tables.

Author
Christophe GONZALES() and Pierre-Henri WUILLEMIN()

Definition in file hashFunc.h.