Adiar 2.1.0
An External Memory Decision Diagram Library
Loading...
Searching...
No Matches
domain.h
1#ifndef ADIAR_DOMAIN_H
2#define ADIAR_DOMAIN_H
3
12
13#include <adiar/exception.h>
14#include <adiar/functional.h>
15
16#include <adiar/internal/io/file.h>
17#include <adiar/internal/io/shared_file_ptr.h>
18
19// TODO: Make 'domain_var' independent of node type. Then remove this include.
20#include <adiar/internal/data_types/node.h>
21
22namespace adiar
23{
28
32 using domain_var = internal::node::label_type;
33
37 constexpr domain_var domain_max = internal::node::max_label;
38
42 void
44
53 void
55
66 template <typename ForwardIt>
67 void
72
84 void
85 domain_set(const internal::shared_file<domain_var>& dom);
86
92 void
94
98 bool
100
114 internal::shared_file<domain_var>
116
124
127}
128
129#endif // ADIAR_DOMAIN_H
internal::shared_file< domain_var > domain_get()
Returns the global domain.
domain_var domain_size()
The size of the domain.
void domain_set(const domain_var varcount)
Set the domain globally for all of Adiar to be [0, varcount).
bool domain_isset()
Whether Adiar has a global domain.
constexpr domain_var domain_max
The maximum supported domain variable.
Definition domain.h:37
internal::node::label_type domain_var
The variable type of a domain variable.
Definition domain.h:32
void domain_unset()
Removes any globally shared domain variables (if any).
function< optional< RetType >()> generator
Generator function that produces a new value of RetType for each call.
Definition functional.h:169
generator< typename ForwardIt::value_type > make_generator(ForwardIt &begin, ForwardIt &end)
Wrap a begin and end iterator pair into a generator function.
Definition functional.h:176
consumer< ValueType > make_consumer(OutputIt &iter)
Wrap an iterator into a consumer function.
Definition functional.h:67
Core types.
Definition adiar.h:40