aGrUM
0.20.3
a C++ library for (probabilistic) graphical models
smallObjectAllocator.cpp
Go to the documentation of this file.
1
/**
2
*
3
* Copyright (c) 2005-2021 by Pierre-Henri WUILLEMIN(@LIP6) & Christophe GONZALES(@AMU)
4
* info_at_agrum_dot_org
5
*
6
* This library is free software: you can redistribute it and/or modify
7
* it under the terms of the GNU Lesser General Public License as published by
8
* the Free Software Foundation, either version 3 of the License, or
9
* (at your option) any later version.
10
*
11
* This library is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU Lesser General Public License for more details.
15
*
16
* You should have received a copy of the GNU Lesser General Public License
17
* along with this library. If not, see <http://www.gnu.org/licenses/>.
18
*
19
*/
20
21
22
/**
23
* @file
24
* @brief Sources of gum::SmallObjectAllocator
25
*
26
* @author Pierre-Henri WUILLEMIN(@LIP6) and Jean-Christophe MAGNAN and Christophe
27
* GONZALES(@AMU)
28
*
29
*/
30
// ============================================================================
31
#
include
<
agrum
/
tools
/
core
/
smallobjectallocator
/
fixedAllocator
.
h
>
32
#
include
<
agrum
/
tools
/
core
/
smallobjectallocator
/
smallObjectAllocator
.
h
>
33
// ============================================================================
34
namespace
gum
{
35
36
37
/*
38
* @variable The default size of chunck of memory.
39
* These chuncks are pre-allocated memory space which are
40
* then split in small memory space of the size of a small object
41
*/
42
const
size_t
SmallObjectAllocator
::
GUM_DEFAULT_CHUNK_SIZE
= 8096;
43
44
/*
45
* @variable The default maximal size under which an object is considered
46
* small. If an object size is over this limit, the normal new allocator is
47
* called.
48
*/
49
const
size_t
SmallObjectAllocator
::
GUM_DEFAULT_MAX_OBJECT_SIZE
= 512;
50
51
52
}
// namespace gum
53
54
#
ifdef
GUM_NO_INLINE
55
#
include
<
agrum
/
tools
/
core
/
smallobjectallocator
/
smallObjectAllocator_inl
.
h
>
56
#
endif
gum::Set::emplace
INLINE void emplace(Args &&... args)
Definition:
set_tpl.h:643