mirror of
https://github.com/BlackLight/libCSP--.git
synced 2024-12-26 18:55:11 +01:00
Version 0.1 commit - tons of changes
This commit is contained in:
parent
c7de99c484
commit
eadb94c013
76 changed files with 8027 additions and 61 deletions
38
Makefile
38
Makefile
|
@ -1,31 +1,31 @@
|
|||
SRC = csp++.cpp
|
||||
OBJ = $(SRC:.cpp=.o)
|
||||
OUT = libcsp++.a
|
||||
INCLUDES = -I.
|
||||
CCFLAGS = -O3 -g
|
||||
CC = g++
|
||||
FOURCOLOURS = fourcolours
|
||||
SUDOKU = sudoku
|
||||
SUFFIX = .cpp
|
||||
INCLUDEDIR=csp++
|
||||
INSTALLDIR=/usr/local
|
||||
|
||||
.SUFFIXES: .cpp
|
||||
examples: fourcolours sudoku
|
||||
|
||||
.cpp.o:
|
||||
$(CC) $(INCLUDES) $(CCFLAGS) -c $< -o $@
|
||||
examples-clean: fourcolours-clean sudoku-clean
|
||||
|
||||
$(OUT): $(OBJ)
|
||||
ar rcs $(OUT) $(OBJ)
|
||||
|
||||
depend: dep
|
||||
|
||||
dep:
|
||||
makedepend -- $(CFLAGS) -- $(INCLUDES) $(SRC)
|
||||
|
||||
clean:
|
||||
rm -f $(OBJ) $(OUT) $(EXAMPLE)
|
||||
install:
|
||||
mkdir -p ${INSTALLDIR}/include
|
||||
mkdir -p ${INSTALLDIR}/include/${INCLUDEDIR}
|
||||
cp ${INCLUDEDIR}/csp++-def.h ${INSTALLDIR}/include/${INCLUDEDIR}
|
||||
cp ${INCLUDEDIR}/csp++.h ${INSTALLDIR}/include/${INCLUDEDIR}
|
||||
cp ${INCLUDEDIR}/csp++.cpp ${INSTALLDIR}/include/${INCLUDEDIR}
|
||||
|
||||
fourcolours:
|
||||
$(CC) $(INCLUDES) $(CCFLAGS) -o $(FOURCOLOURS) $(FOURCOLOURS).cpp $(OUT)
|
||||
$(CC) $(INCLUDES) $(CCFLAGS) -o $(FOURCOLOURS) $(FOURCOLOURS)${SUFFIX}
|
||||
|
||||
examples: fourcolours
|
||||
sudoku:
|
||||
$(CC) $(INCLUDES) $(CCFLAGS) -o $(SUDOKU) $(SUDOKU)${SUFFIX}
|
||||
|
||||
clean-examples:
|
||||
fourcolours-clean:
|
||||
rm ${FOURCOLOURS}
|
||||
|
||||
sudoku-clean:
|
||||
rm ${SUDOKU}
|
||||
|
|
96
README
Normal file
96
README
Normal file
|
@ -0,0 +1,96 @@
|
|||
========================================
|
||||
_ _ _ ____ ____ ____
|
||||
| (_) |__ / ___/ ___|| _ \ _ _
|
||||
| | | '_ \| | \___ \| |_) || |_ _| |_
|
||||
| | | |_) | |___ ___) | __/_ _|_ _|
|
||||
|_|_|_.__/ \____|____/|_| |_| |_|
|
||||
========================================
|
||||
|
||||
|
||||
libCSP++ is a small library whose purpose is allowing the programmer who has to
|
||||
manage constraint-related problems (CSP == Constraint Satisfaction Problem), in
|
||||
artificial intelligence or any other application, to do it easily, just caring
|
||||
about how to express the constraints of his own problem, not how to write an
|
||||
algorithm that verifies those constraints. The programmer only has to focus
|
||||
three parameters: the variables of the problem (e.g., in a sudoku resolution
|
||||
algorithm, each cell of the game may represent a variable), the domains of these
|
||||
variables (e.g., in a sudoku, each cell may assume values from 1 to 9) and the
|
||||
constraints of the problem, simply provided like one or more boolean functions
|
||||
(always in a sudoku, the constraints are represented by a boolean function
|
||||
returning true if all the variables in the same row, column and cell have
|
||||
different values, false otherwise). Once focused these features, the programmer
|
||||
just has to provide them to build a CSP object, without caring of the algorithm
|
||||
to check the satisfiability of his problem, and so pay his attention to *HIS*
|
||||
own algorithm.
|
||||
|
||||
|
||||
INSTALLATION:
|
||||
|
||||
Just type make install. The files will be copied, by default, to /usr/local.
|
||||
Change the Makefile if you want them in a different location. No additional
|
||||
dependency is required. Only a C++ compiler.
|
||||
|
||||
|
||||
USAGE:
|
||||
|
||||
Just include <csp++/csp++.h> in your source files using libCSP++, possibly
|
||||
adding the directory where csp++ directory is located to your include list (for
|
||||
example, using g++ and supposing you installed csp++ to /usr/local, you would
|
||||
append -I/usr/local/include to your compiler command line).
|
||||
|
||||
|
||||
DOCUMENTATION:
|
||||
|
||||
You can find doxygen-generated documentation, both in HTML and LaTeX format, in
|
||||
the doc/ directory of the project. If you modify some of the sources files of
|
||||
the library and want to change the documentation, just move to csp++ directory
|
||||
and launch `doxygen' command again.
|
||||
|
||||
|
||||
EXAMPLES:
|
||||
|
||||
Two examples of usage of the library are provided.
|
||||
|
||||
- fourcolours.cpp is a simple application whose purpose is to interactively ask the
|
||||
user to enter the colours for some European countries. The constraint is that two
|
||||
adjacent countries on the map cannot have the same colour, and the domain of
|
||||
each variable (country) is the set of colours it can assume (a set of 4 colours
|
||||
is used, it has been proved in the chromatic theory of graphs that 4 colours are
|
||||
enough for satisfying the constraint "two adjacent countries must always have
|
||||
different colours"). Every time the user inserts the colour for a country, the
|
||||
domains (colours) of the remaining countries are computed again applying the
|
||||
constraint just entered by the user, and for the next countries the choice of
|
||||
the colours is only restricted to these computed domains. If the user has to
|
||||
choose a colour for a country having an only value left in its domain, that
|
||||
value will be chosen automatically.
|
||||
|
||||
- sudoku.cpp is a nice program that automatically solves a sudoku, theoretically by
|
||||
any size (in truth the complexity of the algorithm rises exponentially when the
|
||||
size of the sudoku grows, and the required time for the algorithm is also
|
||||
inversely proportional to the number of variables already set by default in the
|
||||
game). The sudoku to be solved is read by a text file. If no file is provided,
|
||||
the program reads the sudoku contained in ./sudoku.txt. More examples are
|
||||
provided in files sudoku-easy.txt, sudoku-medium.txt, sudoku-hard.txt and
|
||||
sudoku-2x2x2.txt. If you want to solve a sudoku different by the one provided in
|
||||
sudoku.txt, just put the new sudoku in a file whose structure is similar to the
|
||||
one illustrated in the sample files, and pass it as parameter for the
|
||||
application (e.g. ./sudoku mysudoku.txt). The application will verify whether
|
||||
the given game has a solution (unique), is indeterminate (the given variables
|
||||
are not enough for reaching a unique solution) or impossible (any configuration
|
||||
leads to a violation of the constraints).
|
||||
|
||||
For building the examples, from the root directory of the project just type
|
||||
`make examples'. For removing them, type `make examples-clean'. For building
|
||||
only one of them, type `make fourcolours' or `make sudoku', and specularly `make
|
||||
fourcolours-clean' or `make sudoku-clean'.
|
||||
|
||||
|
||||
LICENCE:
|
||||
|
||||
All the source code and examples are released under GNU GPL 3 licence.
|
||||
|
||||
|
||||
AUTHOR:
|
||||
|
||||
BlackLight, <blacklight[AT]autistici[DOT]org>, http://0x00.ath.cx
|
||||
|
1551
csp++/Doxyfile
Normal file
1551
csp++/Doxyfile
Normal file
File diff suppressed because it is too large
Load diff
247
csp++/csp++-def.h
Normal file
247
csp++/csp++-def.h
Normal file
|
@ -0,0 +1,247 @@
|
|||
/*
|
||||
* =====================================================================================
|
||||
*
|
||||
* Filename: csp++-def.h
|
||||
*
|
||||
* Description: Header file containing the CSP class definition. Never include this
|
||||
* file directly in your sources. Include csp++.h instead.
|
||||
*
|
||||
* Version: 0.1
|
||||
* Created: 16/05/2010 23:16:42
|
||||
* Revision: none
|
||||
* Compiler: gcc
|
||||
*
|
||||
* Author: BlackLight (http://0x00.ath.cx), <blacklight@autistici.org>
|
||||
* Licence: GNU GPL v.3
|
||||
* Company: lulz
|
||||
*
|
||||
* =====================================================================================
|
||||
*/
|
||||
|
||||
#ifndef __CSPPP_H
|
||||
#define __CSPPP_H
|
||||
|
||||
#ifndef __CSPPP_CPP
|
||||
#error "csp++-def.h must not be included directly - include csp++.h instead"
|
||||
#endif
|
||||
|
||||
#define __CSPPP_VERSION "0.1"
|
||||
|
||||
#include <vector>
|
||||
#include <exception>
|
||||
|
||||
/**
|
||||
* \struct CSPvariable csp++.h
|
||||
* \brief Struct used for describing a variable in the CSP
|
||||
*/
|
||||
template<class T>
|
||||
struct CSPvariable {
|
||||
//! Index of the variable
|
||||
int index;
|
||||
|
||||
//! If the value of the variable is set explicitely, this value is true
|
||||
bool fixed;
|
||||
|
||||
//! The value of the variable
|
||||
T value;
|
||||
|
||||
//! Domain of the variable, declared as a vector
|
||||
std::vector<T> domain;
|
||||
};
|
||||
|
||||
/**
|
||||
* \class CSPexception csp++.h
|
||||
* \brief Class for managing exception in CSP
|
||||
*/
|
||||
class CSPexception : public std::exception {
|
||||
const char* message;
|
||||
|
||||
public:
|
||||
/**
|
||||
* \brief Constructor
|
||||
* \param m Message describing the exception
|
||||
*/
|
||||
CSPexception (const char *m) {
|
||||
message = m;
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Return the description of the exception
|
||||
*/
|
||||
virtual const char* what() {
|
||||
return message;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* \class CSP csp++.h
|
||||
* \brief Main class for managing a CSP
|
||||
*/
|
||||
template<class T>
|
||||
class CSP {
|
||||
private:
|
||||
template<class TT>
|
||||
struct arc {
|
||||
CSPvariable<TT> var[2];
|
||||
TT value[2];
|
||||
};
|
||||
|
||||
std::vector< CSPvariable<T> > variables;
|
||||
std::vector< bool (*)(std::vector< CSPvariable<T> >) > constraints;
|
||||
#define constraint constraints[0]
|
||||
|
||||
std::vector< std::vector<T> > __default_domains;
|
||||
T __default_value;
|
||||
bool __has_default_value;
|
||||
static bool __default_constraint ( std::vector< CSPvariable<T> > v ) { return true; }
|
||||
void __init ( int n, bool (*c)(std::vector< CSPvariable<T> >) );
|
||||
void restoreDomains ( void );
|
||||
|
||||
public:
|
||||
/**
|
||||
* \brief Empty constructor - just do nothing, used for declaring an object and
|
||||
* initialize it later
|
||||
*/
|
||||
CSP() {}
|
||||
|
||||
/**
|
||||
* \brief Class constructor
|
||||
* \param n Number of variables in the CSP
|
||||
* \param c Boolean function representing the constraint of the CSP
|
||||
* If no constraint function is set in the constructor or
|
||||
* using the applyConstraint() method, a default function
|
||||
* always returning true will be used, that allows any
|
||||
* domain for any variable to be valid (no constraint)
|
||||
*/
|
||||
CSP ( int n, bool (*c)(std::vector< CSPvariable<T> >) = __default_constraint );
|
||||
|
||||
/**
|
||||
* \brief Class constructor
|
||||
* \param n Number of variables in the CSP
|
||||
* \param default_value Default value for the variables in the CSP
|
||||
* when initialized
|
||||
* \param set_variables Decide whether mark the variables set with
|
||||
* default_value as "set" or "not set" (default: not set)
|
||||
* \param c Boolean function representing the constraint of the CSP
|
||||
* If no constraint function is set in the constructor or
|
||||
* using the applyConstraint() method, a default function
|
||||
* always returning true will be used, that allows any
|
||||
* domain for any variable to be valid (no constraint)
|
||||
*/
|
||||
CSP ( int n, T default_value, bool set_variables = false, bool (*c)(std::vector< CSPvariable<T> >) = __default_constraint );
|
||||
|
||||
/**
|
||||
* \brief Set the domain for the i-th variable
|
||||
* \param index Variable for which we're setting the domain
|
||||
* \param domain Vector containing the possible values for that variable
|
||||
*/
|
||||
void setDomain ( size_t index, std::vector<T> domain );
|
||||
|
||||
/**
|
||||
* \brief Set the domain for the i-th variable
|
||||
* \param index Variable for which we're setting the domain
|
||||
* \param domain Array containing the possible values for that variable
|
||||
* \param size Size of "domain" array
|
||||
*/
|
||||
void setDomain ( size_t index, T domain[], int size );
|
||||
|
||||
/**
|
||||
* \brief Apply the constraint to the CSP as a boolean function
|
||||
* \param c Boolean function representing the constraint of the CSP
|
||||
*/
|
||||
void setConstraint ( bool (*c)(std::vector< CSPvariable<T> >) );
|
||||
|
||||
/**
|
||||
* \brief Apply the constraints to the CSP as vector of boolean functions
|
||||
* \param c Vector containing pointers to boolean functions representing
|
||||
* the constraints of the CSP
|
||||
*/
|
||||
void setConstraint ( std::vector< bool(*)(std::vector< CSPvariable<T> >) > c );
|
||||
|
||||
/**
|
||||
* \brief Drops a constraint from the CSP
|
||||
* \param index Index of the constraint to be dropped
|
||||
*/
|
||||
void dropConstraint ( size_t index );
|
||||
|
||||
/**
|
||||
* \brief Append a constraint to the list of the constraint of the CSP
|
||||
* \param c A function pointer returning a boolean value representing the new constraint
|
||||
*/
|
||||
void appendConstraint ( bool (*c)(std::vector< CSPvariable<T> >) );
|
||||
|
||||
/**
|
||||
* \brief Updates the domains of the variables. Any constraint or node fixed value is applied
|
||||
*/
|
||||
void refreshDomains( void );
|
||||
|
||||
/**
|
||||
* \brief Get the domain of the i-th variable
|
||||
* \param index Variable for which we're going to get the domain
|
||||
* \return The domain of the i-th variable as a vector of T
|
||||
*/
|
||||
std::vector<T> getDomain ( size_t index );
|
||||
|
||||
/**
|
||||
* \brief Get the number of variables in the current CSP
|
||||
* \return Size of the CSP
|
||||
*/
|
||||
size_t getSize ( void );
|
||||
|
||||
/**
|
||||
* \brief Set the value of a variable as a constraint
|
||||
* \param index Index of the parameter to be set
|
||||
* \param value Value to be set
|
||||
*/
|
||||
void setValue ( size_t index, T value );
|
||||
|
||||
/**
|
||||
* \brief Marks a variable as not set, and if a default value was assigned
|
||||
* in the CSP constructor, this value will be set. By default, unless
|
||||
* specified in the constructor, all the variables are considered as
|
||||
* not set
|
||||
* \param index Index of the variable to be unset
|
||||
*/
|
||||
void unsetValue ( size_t index );
|
||||
|
||||
/**
|
||||
* \brief Check if the current CSP, with the applied constraints, is satisfiable
|
||||
* \return true if the CSP has at least a possible solution, false otherwise
|
||||
*/
|
||||
bool isSatisfiable ( void );
|
||||
|
||||
/**
|
||||
* \brief Check if the CSP, with the given variables, domains and constraints,
|
||||
* admits a unique solution, i.e. each domain of each variable contains
|
||||
* an only element
|
||||
* \return true if the CSP has an only possible solution, false otherwise
|
||||
*/
|
||||
bool hasUniqueSolution ( void );
|
||||
|
||||
/**
|
||||
* \brief Check if any of the variables in the CSP has a domain containing an only
|
||||
* item. If so, it automatically assignes that item as value of the variable
|
||||
*/
|
||||
|
||||
void assignUniqueDomains ( void );
|
||||
/**
|
||||
* \brief Check if the i-th variable in the CSP has a fixed value
|
||||
* \param i Index of the variable to be checked
|
||||
* \return true if the i-th variable has a fixed value, false otherwise
|
||||
*/
|
||||
bool isSet ( size_t i );
|
||||
|
||||
/**
|
||||
* \brief Get the value of the i-th variable of the CSP. Be careful: before
|
||||
* using this function you should check whether the variable you're
|
||||
* going to check is actually set, using the isSet() method, unless
|
||||
* you know what you're doing, in order to avoid reading inconsistent
|
||||
* data
|
||||
* \param i Index of the variable to get
|
||||
* \return The value of the variable, if the variable exists
|
||||
*/
|
||||
T value ( size_t i );
|
||||
};
|
||||
|
||||
#endif
|
||||
|
303
csp++/csp++.cpp
Normal file
303
csp++/csp++.cpp
Normal file
|
@ -0,0 +1,303 @@
|
|||
/*
|
||||
* =====================================================================================
|
||||
*
|
||||
* Filename: csp++.cpp
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* Version: 0.1
|
||||
* Created: 17/05/2010 09:17:13
|
||||
* Revision: none
|
||||
* Compiler: gcc
|
||||
*
|
||||
* Author: BlackLight (http://0x00.ath.cx), <blacklight@autistici.org>
|
||||
* Licence: GNU GPL v.3
|
||||
* Company: lulz
|
||||
*
|
||||
* =====================================================================================
|
||||
*/
|
||||
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
#define __CSPPP_CPP
|
||||
#include "csp++-def.h"
|
||||
#undef __CSPPP_CPP
|
||||
|
||||
using std::vector;
|
||||
|
||||
|
||||
template<class T>
|
||||
void
|
||||
CSP<T>::__init (int n, bool (*c)(vector< CSPvariable<T> >))
|
||||
{
|
||||
variables = vector< CSPvariable<T> >(n);
|
||||
__default_domains = vector< vector<T> >(n);
|
||||
|
||||
for (size_t i=0; i < variables.size(); i++) {
|
||||
variables[i].index = i;
|
||||
variables[i].fixed = false;
|
||||
}
|
||||
|
||||
constraints = vector< bool (*)(std::vector< CSPvariable<T> >) >(1);
|
||||
constraint = c;
|
||||
__has_default_value = false;
|
||||
}
|
||||
|
||||
template<class T>
|
||||
CSP<T>::CSP (int n, bool (*c)(vector< CSPvariable<T> >))
|
||||
{
|
||||
__init (n, c);
|
||||
}
|
||||
|
||||
template<class T>
|
||||
CSP<T>::CSP ( int n, T default_value, bool set_value, bool (*c)(std::vector< CSPvariable<T> >) )
|
||||
{
|
||||
__init (n, c);
|
||||
|
||||
for ( size_t i=0; i < variables.size(); i++ ) {
|
||||
variables[i].value = default_value;
|
||||
variables[i].fixed = set_value;
|
||||
}
|
||||
|
||||
__default_value = default_value;
|
||||
__has_default_value = true;
|
||||
}
|
||||
|
||||
template<class T>
|
||||
void
|
||||
CSP<T>::setDomain (size_t index, vector<T> domain)
|
||||
{
|
||||
if (index >= variables.size())
|
||||
throw CSPexception("Index out of range");
|
||||
|
||||
variables[index].domain = domain;
|
||||
__default_domains[index] = domain;
|
||||
}
|
||||
|
||||
template<class T>
|
||||
void
|
||||
CSP<T>::setDomain (size_t index, T domain[], int size)
|
||||
{
|
||||
if (index >= variables.size())
|
||||
throw CSPexception("Index out of range");
|
||||
|
||||
if (size < 0)
|
||||
throw CSPexception("Invalid domain size");
|
||||
|
||||
variables[index].domain = vector<T>(size);
|
||||
|
||||
for (int i=0; i < size; i++) {
|
||||
variables[index].domain[i] = domain[i];
|
||||
__default_domains[index].push_back(domain[i]);
|
||||
}
|
||||
}
|
||||
|
||||
template<class T>
|
||||
void
|
||||
CSP<T>::setConstraint ( bool (*c)(vector< CSPvariable<T> >))
|
||||
{
|
||||
constraints = vector< bool(*)(vector< CSPvariable<T > >) >(1);
|
||||
constraint = c;
|
||||
}
|
||||
|
||||
template<class T>
|
||||
void
|
||||
CSP<T>::setConstraint ( std::vector< bool(*)(std::vector< CSPvariable<T> >) > c )
|
||||
{
|
||||
constraints = c;
|
||||
}
|
||||
|
||||
template<class T>
|
||||
void
|
||||
CSP<T>::appendConstraint ( bool (*c)(vector< CSPvariable<T> >))
|
||||
{
|
||||
constraints.push_back(c);
|
||||
}
|
||||
|
||||
template<class T>
|
||||
void
|
||||
CSP<T>::dropConstraint ( size_t index )
|
||||
{
|
||||
if (index >= constraints.size())
|
||||
throw CSPexception("Index out of range");
|
||||
|
||||
constraints.erase( constraints.begin() + index );
|
||||
}
|
||||
|
||||
template<class T>
|
||||
void
|
||||
CSP<T>::restoreDomains ( void )
|
||||
{
|
||||
for (int i=0; i < variables.size(); i++)
|
||||
variables[i].domain = __default_domains[i];
|
||||
}
|
||||
|
||||
template<class T>
|
||||
void
|
||||
CSP<T>::refreshDomains ( void )
|
||||
{
|
||||
vector< arc<T> > arcs;
|
||||
restoreDomains();
|
||||
|
||||
for (typename vector< CSPvariable<T> >::iterator x = variables.begin(); x != variables.end(); x++) {
|
||||
for (typename vector< CSPvariable<T> >::iterator y = variables.begin(); y != variables.end(); y++) {
|
||||
T xOrigValue = x->value;
|
||||
T yOrigValue = y->value;
|
||||
|
||||
for (size_t i=0; i < x->domain.size(); i++) {
|
||||
if ( x->fixed ) {
|
||||
if ( x->domain[i] != x->value )
|
||||
continue;
|
||||
}
|
||||
|
||||
x->value = x->domain[i];
|
||||
|
||||
for (size_t j=0; j < y->domain.size(); j++) {
|
||||
if ( y->fixed ) {
|
||||
if ( y->domain[j] != y->value )
|
||||
continue;
|
||||
}
|
||||
|
||||
y->value = y->domain[j];
|
||||
bool isConfigurationValid = true;
|
||||
|
||||
for ( typename std::vector< bool (*)(std::vector< CSPvariable<T> >) >::iterator c = constraints.begin();
|
||||
c != constraints.end() && isConfigurationValid;
|
||||
c++ ) {
|
||||
if (!(*c)(variables))
|
||||
isConfigurationValid = false;
|
||||
}
|
||||
|
||||
if (isConfigurationValid) {
|
||||
arc<T> a;
|
||||
a.var[0] = *x; a.var[1] = *y;
|
||||
a.value[0] = x->value; a.value[1] = y->value;
|
||||
arcs.push_back(a);
|
||||
}
|
||||
}
|
||||
|
||||
y->value = yOrigValue;
|
||||
}
|
||||
|
||||
x->value = xOrigValue;
|
||||
}
|
||||
|
||||
vector<T> domain = vector<T>();
|
||||
|
||||
for (size_t i=0; i < arcs.size(); i++) {
|
||||
if (arcs[i].var[0].index == x->index ||
|
||||
arcs[i].var[1].index == x->index) {
|
||||
T value = (arcs[i].var[0].index == x->index) ? arcs[i].value[0] : arcs[i].value[1];
|
||||
bool found = false;
|
||||
|
||||
for (size_t j=0; j < domain.size() && !found; j++) {
|
||||
if (domain[j] == value)
|
||||
found = true;
|
||||
}
|
||||
|
||||
if (!found) {
|
||||
domain.push_back(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sort(domain.begin(), domain.end());
|
||||
x->domain = domain;
|
||||
}
|
||||
}
|
||||
|
||||
template<class T>
|
||||
std::vector<T>
|
||||
CSP<T>::getDomain ( size_t index )
|
||||
{
|
||||
if (index >= variables.size())
|
||||
throw CSPexception("Index out of range");
|
||||
|
||||
return variables[index].domain;
|
||||
}
|
||||
|
||||
template<class T>
|
||||
size_t
|
||||
CSP<T>::getSize( void )
|
||||
{
|
||||
return variables.size();
|
||||
}
|
||||
|
||||
template<class T>
|
||||
void
|
||||
CSP<T>::setValue ( size_t index, T value )
|
||||
{
|
||||
if (index >= variables.size())
|
||||
throw CSPexception("Index out of range");
|
||||
|
||||
variables[index].value = value;
|
||||
variables[index].fixed = true;
|
||||
}
|
||||
|
||||
template<class T>
|
||||
void
|
||||
CSP<T>::unsetValue ( size_t index )
|
||||
{
|
||||
if (index >= variables.size())
|
||||
throw CSPexception("Index out of range");
|
||||
|
||||
if (__has_default_value)
|
||||
variables[index].value = __default_value;
|
||||
variables[index].fixed = false;
|
||||
}
|
||||
|
||||
template<class T>
|
||||
bool
|
||||
CSP<T>::isSatisfiable ( void )
|
||||
{
|
||||
for ( size_t i=0; i < variables.size(); i++ ) {
|
||||
if ( variables[i].domain.empty() )
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
template<class T>
|
||||
bool
|
||||
CSP<T>::hasUniqueSolution ( void )
|
||||
{
|
||||
for ( size_t i=0; i < variables.size(); i++ ) {
|
||||
if (variables[i].domain.size() != 1)
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
template<class T>
|
||||
void
|
||||
CSP<T>::assignUniqueDomains ( void )
|
||||
{
|
||||
for ( int i=0; i < getSize(); i++ ) {
|
||||
if (getDomain(i).size() == 1)
|
||||
setValue( i, getDomain(i)[0] );
|
||||
}
|
||||
}
|
||||
|
||||
template<class T>
|
||||
bool
|
||||
CSP<T>::isSet ( size_t index )
|
||||
{
|
||||
if (index >= variables.size())
|
||||
throw CSPexception("Index out of range");
|
||||
|
||||
return variables[index].fixed;
|
||||
}
|
||||
|
||||
template<class T>
|
||||
T
|
||||
CSP<T>::value ( size_t index )
|
||||
{
|
||||
if (index >= variables.size())
|
||||
throw CSPexception("Index out of range");
|
||||
|
||||
return variables[index].value;
|
||||
}
|
||||
|
29
csp++/csp++.h
Normal file
29
csp++/csp++.h
Normal file
|
@ -0,0 +1,29 @@
|
|||
/*
|
||||
* =====================================================================================
|
||||
*
|
||||
* Filename: csp++.h
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* Version: 0.1
|
||||
* Created: 23/05/2010 23:27:43
|
||||
* Revision: none
|
||||
* Compiler: gcc
|
||||
*
|
||||
* Author: BlackLight (http://0x00.ath.cx), <blacklight@autistici.org>
|
||||
* Licence: GNU GPL v.3
|
||||
* Company: lulz
|
||||
*
|
||||
* =====================================================================================
|
||||
*/
|
||||
|
||||
// Yes, I know it looks stupid, but ask C++ standard developers about this.
|
||||
// C++ can't expand template class code until a type is explicitely specified.
|
||||
// This is nearly like not using templates at all, but join me in asking C++
|
||||
// compilers developers to massively allow the export keyword and change the
|
||||
// way templates are managed. Until that moment, you must always include the
|
||||
// .cpp file of the library inside your source code as well, and specify later
|
||||
// the types you're going to use this template class for
|
||||
|
||||
#include "csp++.cpp"
|
||||
|
70
doc/html/annotated.html
Normal file
70
doc/html/annotated.html
Normal file
|
@ -0,0 +1,70 @@
|
|||
<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>libCSP++: Class List</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javaScript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body onload='searchBox.OnSelectItem(0);'>
|
||||
<!-- Generated by Doxygen 1.6.3 -->
|
||||
<script type="text/javascript"><!--
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
--></script>
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
<li>
|
||||
<div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<img id="MSearchSelect" src="search/search.png"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
alt=""/>
|
||||
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li class="current"><a href="annotated.html"><span>Class List</span></a></li>
|
||||
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>Class List</h1>Here are the classes, structs, unions and interfaces with brief descriptions:<table>
|
||||
<tr><td class="indexkey"><a class="el" href="classCSP.html">CSP< T ></a></td><td class="indexvalue">Main class for managing a <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a> </td></tr>
|
||||
<tr><td class="indexkey"><a class="el" href="classCSPexception.html">CSPexception</a></td><td class="indexvalue">Class for managing exception in <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a> </td></tr>
|
||||
<tr><td class="indexkey"><a class="el" href="structCSPvariable.html">CSPvariable< T ></a></td><td class="indexvalue">Struct used for describing a variable in the <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a> </td></tr>
|
||||
</table>
|
||||
</div>
|
||||
<!--- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a></div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 24 01:58:01 2010 for libCSP++ by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
|
||||
</body>
|
||||
</html>
|
85
doc/html/classCSP-members.html
Normal file
85
doc/html/classCSP-members.html
Normal file
|
@ -0,0 +1,85 @@
|
|||
<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>libCSP++: Member List</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javaScript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body onload='searchBox.OnSelectItem(0);'>
|
||||
<!-- Generated by Doxygen 1.6.3 -->
|
||||
<script type="text/javascript"><!--
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
--></script>
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
<li>
|
||||
<div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<img id="MSearchSelect" src="search/search.png"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
alt=""/>
|
||||
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>CSP< T > Member List</h1>This is the complete list of members for <a class="el" href="classCSP.html">CSP< T ></a>, including all inherited members.<table>
|
||||
<tr class="memlist"><td><a class="el" href="classCSP.html#a8dc6aec6ca7e40d198e58b0ec14fee66">appendConstraint</a>(bool(*c)(std::vector< CSPvariable< T > >))</td><td><a class="el" href="classCSP.html">CSP< T ></a></td><td></td></tr>
|
||||
<tr class="memlist"><td><a class="el" href="classCSP.html#ac74cb751589a58bf6f2815f6878d2213">assignUniqueDomains</a>(void)</td><td><a class="el" href="classCSP.html">CSP< T ></a></td><td><code> [inline]</code></td></tr>
|
||||
<tr class="memlist"><td><a class="el" href="classCSP.html#a3a4c1cfab4f5c2376b5f9da588e73f5a">CSP</a>()</td><td><a class="el" href="classCSP.html">CSP< T ></a></td><td><code> [inline]</code></td></tr>
|
||||
<tr class="memlist"><td><a class="el" href="classCSP.html#ad49548121582cc2d59e0d7f100092b75">CSP</a>(int n, bool(*c)(std::vector< CSPvariable< T > >)=__default_constraint)</td><td><a class="el" href="classCSP.html">CSP< T ></a></td><td></td></tr>
|
||||
<tr class="memlist"><td><a class="el" href="classCSP.html#a734bb08d8f45394a2acfc8822981a6d0">CSP</a>(int n, T default_value, bool set_variables=false, bool(*c)(std::vector< CSPvariable< T > >)=__default_constraint)</td><td><a class="el" href="classCSP.html">CSP< T ></a></td><td><code> [inline]</code></td></tr>
|
||||
<tr class="memlist"><td><a class="el" href="classCSP.html#a0231b93bceae257f0e1c35041f8fe63f">dropConstraint</a>(size_t index)</td><td><a class="el" href="classCSP.html">CSP< T ></a></td><td><code> [inline]</code></td></tr>
|
||||
<tr class="memlist"><td><a class="el" href="classCSP.html#a2a9a7d8072613f6984795d5495373847">getDomain</a>(size_t index)</td><td><a class="el" href="classCSP.html">CSP< T ></a></td><td><code> [inline]</code></td></tr>
|
||||
<tr class="memlist"><td><a class="el" href="classCSP.html#a91a0e89bc1882d39b88122bee392c5f3">getSize</a>(void)</td><td><a class="el" href="classCSP.html">CSP< T ></a></td><td><code> [inline]</code></td></tr>
|
||||
<tr class="memlist"><td><a class="el" href="classCSP.html#ae96286c6c7dfb6fe077544e0d4af15f4">hasUniqueSolution</a>(void)</td><td><a class="el" href="classCSP.html">CSP< T ></a></td><td><code> [inline]</code></td></tr>
|
||||
<tr class="memlist"><td><a class="el" href="classCSP.html#a7ef9eb91c38815c9d82182696a6bd5d3">isSatisfiable</a>(void)</td><td><a class="el" href="classCSP.html">CSP< T ></a></td><td><code> [inline]</code></td></tr>
|
||||
<tr class="memlist"><td><a class="el" href="classCSP.html#a213dafc1aae7b1825371810a511eca4f">isSet</a>(size_t i)</td><td><a class="el" href="classCSP.html">CSP< T ></a></td><td><code> [inline]</code></td></tr>
|
||||
<tr class="memlist"><td><a class="el" href="classCSP.html#a466845256e638c5e258fd728b641359f">refreshDomains</a>(void)</td><td><a class="el" href="classCSP.html">CSP< T ></a></td><td><code> [inline]</code></td></tr>
|
||||
<tr class="memlist"><td><a class="el" href="classCSP.html#a534a0d9bd10fb544f94196bf3c386657">setConstraint</a>(bool(*c)(std::vector< CSPvariable< T > >))</td><td><a class="el" href="classCSP.html">CSP< T ></a></td><td></td></tr>
|
||||
<tr class="memlist"><td><a class="el" href="classCSP.html#a457e1df05d4ec16be00118bda22fd882">setConstraint</a>(std::vector< bool(*)(std::vector< CSPvariable< T > >) > c)</td><td><a class="el" href="classCSP.html">CSP< T ></a></td><td><code> [inline]</code></td></tr>
|
||||
<tr class="memlist"><td><a class="el" href="classCSP.html#a4017c17aac9d3e96d0e821ebbe09da7b">setDomain</a>(size_t index, std::vector< T > domain)</td><td><a class="el" href="classCSP.html">CSP< T ></a></td><td></td></tr>
|
||||
<tr class="memlist"><td><a class="el" href="classCSP.html#a65518e67e33e31bff1b5f9aabdf80a01">setDomain</a>(size_t index, T domain[], int size)</td><td><a class="el" href="classCSP.html">CSP< T ></a></td><td><code> [inline]</code></td></tr>
|
||||
<tr class="memlist"><td><a class="el" href="classCSP.html#ac25064c5b2d4e1020173b56913251ebd">setValue</a>(size_t index, T value)</td><td><a class="el" href="classCSP.html">CSP< T ></a></td><td><code> [inline]</code></td></tr>
|
||||
<tr class="memlist"><td><a class="el" href="classCSP.html#a4c0cae125a610f519dc22eaec255a0ae">unsetValue</a>(size_t index)</td><td><a class="el" href="classCSP.html">CSP< T ></a></td><td><code> [inline]</code></td></tr>
|
||||
<tr class="memlist"><td><a class="el" href="classCSP.html#aafa5e1a65d6c5d80780437d8d684f32a">value</a>(size_t i)</td><td><a class="el" href="classCSP.html">CSP< T ></a></td><td><code> [inline]</code></td></tr>
|
||||
</table></div>
|
||||
<!--- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a></div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 24 01:58:02 2010 for libCSP++ by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
|
||||
</body>
|
||||
</html>
|
636
doc/html/classCSP.html
Normal file
636
doc/html/classCSP.html
Normal file
|
@ -0,0 +1,636 @@
|
|||
<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>libCSP++: CSP< T > Class Template Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javaScript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body onload='searchBox.OnSelectItem(0);'>
|
||||
<!-- Generated by Doxygen 1.6.3 -->
|
||||
<script type="text/javascript"><!--
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
--></script>
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
<li>
|
||||
<div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<img id="MSearchSelect" src="search/search.png"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
alt=""/>
|
||||
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>CSP< T > Class Template Reference</h1><!-- doxytag: class="CSP" -->
|
||||
<p>Main class for managing a <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a>.
|
||||
<a href="#_details">More...</a></p>
|
||||
|
||||
<p><code>#include <<a class="el" href="csp_09_09_8h_source.html">csp++.h</a>></code></p>
|
||||
|
||||
<p><a href="classCSP-members.html">List of all members.</a></p>
|
||||
<table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Classes</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><b>arc</b></td></tr>
|
||||
<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3a4c1cfab4f5c2376b5f9da588e73f5a"></a><!-- doxytag: member="CSP::CSP" ref="a3a4c1cfab4f5c2376b5f9da588e73f5a" args="()" -->
|
||||
</td><td class="memItemRight" valign="bottom"><a class="el" href="classCSP.html#a3a4c1cfab4f5c2376b5f9da588e73f5a">CSP</a> ()</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Empty constructor - just do nothing, used for declaring an object and initialize it later. <br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCSP.html#ad49548121582cc2d59e0d7f100092b75">CSP</a> (int n, bool(*c)(std::vector< <a class="el" href="structCSPvariable.html">CSPvariable</a>< T > >)=__default_constraint)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Class constructor. <a href="#ad49548121582cc2d59e0d7f100092b75"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCSP.html#a734bb08d8f45394a2acfc8822981a6d0">CSP</a> (int n, T default_value, bool set_variables=false, bool(*c)(std::vector< <a class="el" href="structCSPvariable.html">CSPvariable</a>< T > >)=__default_constraint)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Class constructor. <a href="#a734bb08d8f45394a2acfc8822981a6d0"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCSP.html#a4017c17aac9d3e96d0e821ebbe09da7b">setDomain</a> (size_t index, std::vector< T > domain)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the domain for the i-th variable. <a href="#a4017c17aac9d3e96d0e821ebbe09da7b"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCSP.html#a65518e67e33e31bff1b5f9aabdf80a01">setDomain</a> (size_t index, T domain[], int size)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the domain for the i-th variable. <a href="#a65518e67e33e31bff1b5f9aabdf80a01"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCSP.html#a534a0d9bd10fb544f94196bf3c386657">setConstraint</a> (bool(*c)(std::vector< <a class="el" href="structCSPvariable.html">CSPvariable</a>< T > >))</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Apply the constraint to the <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a> as a boolean function. <a href="#a534a0d9bd10fb544f94196bf3c386657"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCSP.html#a457e1df05d4ec16be00118bda22fd882">setConstraint</a> (std::vector< bool(*)(std::vector< <a class="el" href="structCSPvariable.html">CSPvariable</a>< T > >) > c)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Apply the constraints to the <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a> as vector of boolean functions. <a href="#a457e1df05d4ec16be00118bda22fd882"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCSP.html#a0231b93bceae257f0e1c35041f8fe63f">dropConstraint</a> (size_t index)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Drops a constraint from the <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a>. <a href="#a0231b93bceae257f0e1c35041f8fe63f"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCSP.html#a8dc6aec6ca7e40d198e58b0ec14fee66">appendConstraint</a> (bool(*c)(std::vector< <a class="el" href="structCSPvariable.html">CSPvariable</a>< T > >))</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Append a constraint to the list of the constraint of the <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a>. <a href="#a8dc6aec6ca7e40d198e58b0ec14fee66"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a466845256e638c5e258fd728b641359f"></a><!-- doxytag: member="CSP::refreshDomains" ref="a466845256e638c5e258fd728b641359f" args="(void)" -->
|
||||
void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCSP.html#a466845256e638c5e258fd728b641359f">refreshDomains</a> (void)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Updates the domains of the variables. Any constraint or node fixed value is applied. <br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">std::vector< T > </td><td class="memItemRight" valign="bottom"><a class="el" href="classCSP.html#a2a9a7d8072613f6984795d5495373847">getDomain</a> (size_t index)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the domain of the i-th variable. <a href="#a2a9a7d8072613f6984795d5495373847"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classCSP.html#a91a0e89bc1882d39b88122bee392c5f3">getSize</a> (void)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the number of variables in the current <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a>. <a href="#a91a0e89bc1882d39b88122bee392c5f3"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCSP.html#ac25064c5b2d4e1020173b56913251ebd">setValue</a> (size_t index, T value)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the value of a variable as a constraint. <a href="#ac25064c5b2d4e1020173b56913251ebd"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCSP.html#a4c0cae125a610f519dc22eaec255a0ae">unsetValue</a> (size_t index)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Marks a variable as not set, and if a default value was assigned in the <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a> constructor, this value will be set. By default, unless specified in the constructor, all the variables are considered as not set. <a href="#a4c0cae125a610f519dc22eaec255a0ae"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classCSP.html#a7ef9eb91c38815c9d82182696a6bd5d3">isSatisfiable</a> (void)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Check if the current <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a>, with the applied constraints, is satisfiable. <a href="#a7ef9eb91c38815c9d82182696a6bd5d3"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classCSP.html#ae96286c6c7dfb6fe077544e0d4af15f4">hasUniqueSolution</a> (void)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Check if the <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a>, with the given variables, domains and constraints, admits a unique solution, i.e. each domain of each variable contains an only element. <a href="#ae96286c6c7dfb6fe077544e0d4af15f4"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac74cb751589a58bf6f2815f6878d2213"></a><!-- doxytag: member="CSP::assignUniqueDomains" ref="ac74cb751589a58bf6f2815f6878d2213" args="(void)" -->
|
||||
void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCSP.html#ac74cb751589a58bf6f2815f6878d2213">assignUniqueDomains</a> (void)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Check if any of the variables in the <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a> has a domain containing an only item. If so, it automatically assignes that item as value of the variable. <br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classCSP.html#a213dafc1aae7b1825371810a511eca4f">isSet</a> (size_t i)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Check if the i-th variable in the <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a> has a fixed value. <a href="#a213dafc1aae7b1825371810a511eca4f"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">T </td><td class="memItemRight" valign="bottom"><a class="el" href="classCSP.html#aafa5e1a65d6c5d80780437d8d684f32a">value</a> (size_t i)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the value of the i-th variable of the <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a>. Be careful: before using this function you should check whether the variable you're going to check is actually set, using the <a class="el" href="classCSP.html#a213dafc1aae7b1825371810a511eca4f" title="Check if the i-th variable in the CSP has a fixed value.">isSet()</a> method, unless you know what you're doing, in order to avoid reading inconsistent data. <a href="#aafa5e1a65d6c5d80780437d8d684f32a"></a><br/></td></tr>
|
||||
</table>
|
||||
<hr/><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<h3>template<class T><br/>
|
||||
class CSP< T ></h3>
|
||||
|
||||
<p>Main class for managing a <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a>. </p>
|
||||
<hr/><h2>Constructor & Destructor Documentation</h2>
|
||||
<a class="anchor" id="ad49548121582cc2d59e0d7f100092b75"></a><!-- doxytag: member="CSP::CSP" ref="ad49548121582cc2d59e0d7f100092b75" args="(int n, bool(*c)(std::vector< CSPvariable< T > >)=__default_constraint)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<class T > </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="classCSP.html">CSP</a>< T >::<a class="el" href="classCSP.html">CSP</a> </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">int </td>
|
||||
<td class="paramname"> <em>n</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">bool(*)(std::vector< <a class="el" href="structCSPvariable.html">CSPvariable</a>< T > >) </td>
|
||||
<td class="paramname"> <em>c</em> = <code>__default_constraint</code></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Class constructor. </p>
|
||||
<dl><dt><b>Parameters:</b></dt><dd>
|
||||
<table border="0" cellspacing="2" cellpadding="0">
|
||||
<tr><td valign="top"></td><td valign="top"><em>n</em> </td><td>Number of variables in the <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a> </td></tr>
|
||||
<tr><td valign="top"></td><td valign="top"><em>c</em> </td><td>Boolean function representing the constraint of the <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a> If no constraint function is set in the constructor or using the applyConstraint() method, a default function always returning true will be used, that allows any domain for any variable to be valid (no constraint) </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a734bb08d8f45394a2acfc8822981a6d0"></a><!-- doxytag: member="CSP::CSP" ref="a734bb08d8f45394a2acfc8822981a6d0" args="(int n, T default_value, bool set_variables=false, bool(*c)(std::vector< CSPvariable< T > >)=__default_constraint)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<class T > </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="classCSP.html">CSP</a>< T >::<a class="el" href="classCSP.html">CSP</a> </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">int </td>
|
||||
<td class="paramname"> <em>n</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">T </td>
|
||||
<td class="paramname"> <em>default_value</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">bool </td>
|
||||
<td class="paramname"> <em>set_variables</em> = <code>false</code>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">bool(*)(std::vector< <a class="el" href="structCSPvariable.html">CSPvariable</a>< T > >) </td>
|
||||
<td class="paramname"> <em>c</em> = <code>__default_constraint</code></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [inline]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Class constructor. </p>
|
||||
<dl><dt><b>Parameters:</b></dt><dd>
|
||||
<table border="0" cellspacing="2" cellpadding="0">
|
||||
<tr><td valign="top"></td><td valign="top"><em>n</em> </td><td>Number of variables in the <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a> </td></tr>
|
||||
<tr><td valign="top"></td><td valign="top"><em>default_value</em> </td><td>Default value for the variables in the <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a> when initialized </td></tr>
|
||||
<tr><td valign="top"></td><td valign="top"><em>set_variables</em> </td><td>Decide whether mark the variables set with default_value as "set" or "not set" (default: not set) </td></tr>
|
||||
<tr><td valign="top"></td><td valign="top"><em>c</em> </td><td>Boolean function representing the constraint of the <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a> If no constraint function is set in the constructor or using the applyConstraint() method, a default function always returning true will be used, that allows any domain for any variable to be valid (no constraint) </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr/><h2>Member Function Documentation</h2>
|
||||
<a class="anchor" id="a8dc6aec6ca7e40d198e58b0ec14fee66"></a><!-- doxytag: member="CSP::appendConstraint" ref="a8dc6aec6ca7e40d198e58b0ec14fee66" args="(bool(*c)(std::vector< CSPvariable< T > >))" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<class T > </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void <a class="el" href="classCSP.html">CSP</a>< T >::appendConstraint </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">bool(*)(std::vector< <a class="el" href="structCSPvariable.html">CSPvariable</a>< T > >) </td>
|
||||
<td class="paramname"> <em>c</em></td>
|
||||
<td> ) </td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Append a constraint to the list of the constraint of the <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a>. </p>
|
||||
<dl><dt><b>Parameters:</b></dt><dd>
|
||||
<table border="0" cellspacing="2" cellpadding="0">
|
||||
<tr><td valign="top"></td><td valign="top"><em>c</em> </td><td>A function pointer returning a boolean value representing the new constraint </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a0231b93bceae257f0e1c35041f8fe63f"></a><!-- doxytag: member="CSP::dropConstraint" ref="a0231b93bceae257f0e1c35041f8fe63f" args="(size_t index)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<class T > </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void <a class="el" href="classCSP.html">CSP</a>< T >::dropConstraint </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"> <em>index</em></td>
|
||||
<td> ) </td>
|
||||
<td><code> [inline]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Drops a constraint from the <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a>. </p>
|
||||
<dl><dt><b>Parameters:</b></dt><dd>
|
||||
<table border="0" cellspacing="2" cellpadding="0">
|
||||
<tr><td valign="top"></td><td valign="top"><em>index</em> </td><td>Index of the constraint to be dropped </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a2a9a7d8072613f6984795d5495373847"></a><!-- doxytag: member="CSP::getDomain" ref="a2a9a7d8072613f6984795d5495373847" args="(size_t index)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<class T > </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">std::vector< T > <a class="el" href="classCSP.html">CSP</a>< T >::getDomain </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"> <em>index</em></td>
|
||||
<td> ) </td>
|
||||
<td><code> [inline]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Get the domain of the i-th variable. </p>
|
||||
<dl><dt><b>Parameters:</b></dt><dd>
|
||||
<table border="0" cellspacing="2" cellpadding="0">
|
||||
<tr><td valign="top"></td><td valign="top"><em>index</em> </td><td>Variable for which we're going to get the domain </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="return"><dt><b>Returns:</b></dt><dd>The domain of the i-th variable as a vector of T </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a91a0e89bc1882d39b88122bee392c5f3"></a><!-- doxytag: member="CSP::getSize" ref="a91a0e89bc1882d39b88122bee392c5f3" args="(void)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<class T > </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">size_t <a class="el" href="classCSP.html">CSP</a>< T >::getSize </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">void </td>
|
||||
<td class="paramname"></td>
|
||||
<td> ) </td>
|
||||
<td><code> [inline]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Get the number of variables in the current <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a>. </p>
|
||||
<dl class="return"><dt><b>Returns:</b></dt><dd>Size of the <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a> </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ae96286c6c7dfb6fe077544e0d4af15f4"></a><!-- doxytag: member="CSP::hasUniqueSolution" ref="ae96286c6c7dfb6fe077544e0d4af15f4" args="(void)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<class T > </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">bool <a class="el" href="classCSP.html">CSP</a>< T >::hasUniqueSolution </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">void </td>
|
||||
<td class="paramname"></td>
|
||||
<td> ) </td>
|
||||
<td><code> [inline]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Check if the <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a>, with the given variables, domains and constraints, admits a unique solution, i.e. each domain of each variable contains an only element. </p>
|
||||
<dl class="return"><dt><b>Returns:</b></dt><dd>true if the <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a> has an only possible solution, false otherwise </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a7ef9eb91c38815c9d82182696a6bd5d3"></a><!-- doxytag: member="CSP::isSatisfiable" ref="a7ef9eb91c38815c9d82182696a6bd5d3" args="(void)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<class T > </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">bool <a class="el" href="classCSP.html">CSP</a>< T >::isSatisfiable </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">void </td>
|
||||
<td class="paramname"></td>
|
||||
<td> ) </td>
|
||||
<td><code> [inline]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Check if the current <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a>, with the applied constraints, is satisfiable. </p>
|
||||
<dl class="return"><dt><b>Returns:</b></dt><dd>true if the <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a> has at least a possible solution, false otherwise </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a213dafc1aae7b1825371810a511eca4f"></a><!-- doxytag: member="CSP::isSet" ref="a213dafc1aae7b1825371810a511eca4f" args="(size_t i)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<class T > </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">bool <a class="el" href="classCSP.html">CSP</a>< T >::isSet </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"> <em>i</em></td>
|
||||
<td> ) </td>
|
||||
<td><code> [inline]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Check if the i-th variable in the <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a> has a fixed value. </p>
|
||||
<dl><dt><b>Parameters:</b></dt><dd>
|
||||
<table border="0" cellspacing="2" cellpadding="0">
|
||||
<tr><td valign="top"></td><td valign="top"><em>i</em> </td><td>Index of the variable to be checked </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="return"><dt><b>Returns:</b></dt><dd>true if the i-th variable has a fixed value, false otherwise </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a457e1df05d4ec16be00118bda22fd882"></a><!-- doxytag: member="CSP::setConstraint" ref="a457e1df05d4ec16be00118bda22fd882" args="(std::vector< bool(*)(std::vector< CSPvariable< T > >) > c)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<class T > </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void <a class="el" href="classCSP.html">CSP</a>< T >::setConstraint </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">std::vector< bool(*)(std::vector< <a class="el" href="structCSPvariable.html">CSPvariable</a>< T > >) > </td>
|
||||
<td class="paramname"> <em>c</em></td>
|
||||
<td> ) </td>
|
||||
<td><code> [inline]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Apply the constraints to the <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a> as vector of boolean functions. </p>
|
||||
<dl><dt><b>Parameters:</b></dt><dd>
|
||||
<table border="0" cellspacing="2" cellpadding="0">
|
||||
<tr><td valign="top"></td><td valign="top"><em>c</em> </td><td>Vector containing pointers to boolean functions representing the constraints of the <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a> </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a534a0d9bd10fb544f94196bf3c386657"></a><!-- doxytag: member="CSP::setConstraint" ref="a534a0d9bd10fb544f94196bf3c386657" args="(bool(*c)(std::vector< CSPvariable< T > >))" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<class T > </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void <a class="el" href="classCSP.html">CSP</a>< T >::setConstraint </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">bool(*)(std::vector< <a class="el" href="structCSPvariable.html">CSPvariable</a>< T > >) </td>
|
||||
<td class="paramname"> <em>c</em></td>
|
||||
<td> ) </td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Apply the constraint to the <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a> as a boolean function. </p>
|
||||
<dl><dt><b>Parameters:</b></dt><dd>
|
||||
<table border="0" cellspacing="2" cellpadding="0">
|
||||
<tr><td valign="top"></td><td valign="top"><em>c</em> </td><td>Boolean function representing the constraint of the <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a> </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a65518e67e33e31bff1b5f9aabdf80a01"></a><!-- doxytag: member="CSP::setDomain" ref="a65518e67e33e31bff1b5f9aabdf80a01" args="(size_t index, T domain[], int size)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<class T > </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void <a class="el" href="classCSP.html">CSP</a>< T >::setDomain </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"> <em>index</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">T </td>
|
||||
<td class="paramname"> <em>domain</em>[], </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">int </td>
|
||||
<td class="paramname"> <em>size</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [inline]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Set the domain for the i-th variable. </p>
|
||||
<dl><dt><b>Parameters:</b></dt><dd>
|
||||
<table border="0" cellspacing="2" cellpadding="0">
|
||||
<tr><td valign="top"></td><td valign="top"><em>index</em> </td><td>Variable for which we're setting the domain </td></tr>
|
||||
<tr><td valign="top"></td><td valign="top"><em>domain</em> </td><td>Array containing the possible values for that variable </td></tr>
|
||||
<tr><td valign="top"></td><td valign="top"><em>size</em> </td><td>Size of "domain" array </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a4017c17aac9d3e96d0e821ebbe09da7b"></a><!-- doxytag: member="CSP::setDomain" ref="a4017c17aac9d3e96d0e821ebbe09da7b" args="(size_t index, std::vector< T > domain)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<class T > </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void <a class="el" href="classCSP.html">CSP</a>< T >::setDomain </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"> <em>index</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">std::vector< T > </td>
|
||||
<td class="paramname"> <em>domain</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Set the domain for the i-th variable. </p>
|
||||
<dl><dt><b>Parameters:</b></dt><dd>
|
||||
<table border="0" cellspacing="2" cellpadding="0">
|
||||
<tr><td valign="top"></td><td valign="top"><em>index</em> </td><td>Variable for which we're setting the domain </td></tr>
|
||||
<tr><td valign="top"></td><td valign="top"><em>domain</em> </td><td>Vector containing the possible values for that variable </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ac25064c5b2d4e1020173b56913251ebd"></a><!-- doxytag: member="CSP::setValue" ref="ac25064c5b2d4e1020173b56913251ebd" args="(size_t index, T value)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<class T > </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void <a class="el" href="classCSP.html">CSP</a>< T >::setValue </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"> <em>index</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">T </td>
|
||||
<td class="paramname"> <em>value</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [inline]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Set the value of a variable as a constraint. </p>
|
||||
<dl><dt><b>Parameters:</b></dt><dd>
|
||||
<table border="0" cellspacing="2" cellpadding="0">
|
||||
<tr><td valign="top"></td><td valign="top"><em>index</em> </td><td>Index of the parameter to be set </td></tr>
|
||||
<tr><td valign="top"></td><td valign="top"><em>value</em> </td><td>Value to be set </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a4c0cae125a610f519dc22eaec255a0ae"></a><!-- doxytag: member="CSP::unsetValue" ref="a4c0cae125a610f519dc22eaec255a0ae" args="(size_t index)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<class T > </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void <a class="el" href="classCSP.html">CSP</a>< T >::unsetValue </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"> <em>index</em></td>
|
||||
<td> ) </td>
|
||||
<td><code> [inline]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Marks a variable as not set, and if a default value was assigned in the <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a> constructor, this value will be set. By default, unless specified in the constructor, all the variables are considered as not set. </p>
|
||||
<dl><dt><b>Parameters:</b></dt><dd>
|
||||
<table border="0" cellspacing="2" cellpadding="0">
|
||||
<tr><td valign="top"></td><td valign="top"><em>index</em> </td><td>Index of the variable to be unset </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="aafa5e1a65d6c5d80780437d8d684f32a"></a><!-- doxytag: member="CSP::value" ref="aafa5e1a65d6c5d80780437d8d684f32a" args="(size_t i)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<class T > </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">T <a class="el" href="classCSP.html">CSP</a>< T >::value </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"> <em>i</em></td>
|
||||
<td> ) </td>
|
||||
<td><code> [inline]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Get the value of the i-th variable of the <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a>. Be careful: before using this function you should check whether the variable you're going to check is actually set, using the <a class="el" href="classCSP.html#a213dafc1aae7b1825371810a511eca4f" title="Check if the i-th variable in the CSP has a fixed value.">isSet()</a> method, unless you know what you're doing, in order to avoid reading inconsistent data. </p>
|
||||
<dl><dt><b>Parameters:</b></dt><dd>
|
||||
<table border="0" cellspacing="2" cellpadding="0">
|
||||
<tr><td valign="top"></td><td valign="top"><em>i</em> </td><td>Index of the variable to get </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="return"><dt><b>Returns:</b></dt><dd>The value of the variable, if the variable exists </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this class was generated from the following files:<ul>
|
||||
<li><a class="el" href="csp_09_09-def_8h_source.html">csp++-def.h</a></li>
|
||||
<li>csp++.cpp</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!--- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a></div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 24 01:58:02 2010 for libCSP++ by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
|
||||
</body>
|
||||
</html>
|
68
doc/html/classCSPexception-members.html
Normal file
68
doc/html/classCSPexception-members.html
Normal file
|
@ -0,0 +1,68 @@
|
|||
<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>libCSP++: Member List</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javaScript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body onload='searchBox.OnSelectItem(0);'>
|
||||
<!-- Generated by Doxygen 1.6.3 -->
|
||||
<script type="text/javascript"><!--
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
--></script>
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
<li>
|
||||
<div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<img id="MSearchSelect" src="search/search.png"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
alt=""/>
|
||||
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>CSPexception Member List</h1>This is the complete list of members for <a class="el" href="classCSPexception.html">CSPexception</a>, including all inherited members.<table>
|
||||
<tr class="memlist"><td><a class="el" href="classCSPexception.html#a810bcfbb11d2e35d7b95f1e2b11b408c">CSPexception</a>(const char *m)</td><td><a class="el" href="classCSPexception.html">CSPexception</a></td><td><code> [inline]</code></td></tr>
|
||||
<tr class="memlist"><td><a class="el" href="classCSPexception.html#a7013e90a6c26ba4c15bc6fbc42be02ef">what</a>()</td><td><a class="el" href="classCSPexception.html">CSPexception</a></td><td><code> [inline, virtual]</code></td></tr>
|
||||
</table></div>
|
||||
<!--- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a></div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 24 01:58:02 2010 for libCSP++ by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
|
||||
</body>
|
||||
</html>
|
112
doc/html/classCSPexception.html
Normal file
112
doc/html/classCSPexception.html
Normal file
|
@ -0,0 +1,112 @@
|
|||
<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>libCSP++: CSPexception Class Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javaScript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body onload='searchBox.OnSelectItem(0);'>
|
||||
<!-- Generated by Doxygen 1.6.3 -->
|
||||
<script type="text/javascript"><!--
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
--></script>
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
<li>
|
||||
<div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<img id="MSearchSelect" src="search/search.png"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
alt=""/>
|
||||
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>CSPexception Class Reference</h1><!-- doxytag: class="CSPexception" -->
|
||||
<p>Class for managing exception in <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a>.
|
||||
<a href="#_details">More...</a></p>
|
||||
|
||||
<p><code>#include <<a class="el" href="csp_09_09_8h_source.html">csp++.h</a>></code></p>
|
||||
|
||||
<p><a href="classCSPexception-members.html">List of all members.</a></p>
|
||||
<table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCSPexception.html#a810bcfbb11d2e35d7b95f1e2b11b408c">CSPexception</a> (const char *m)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#a810bcfbb11d2e35d7b95f1e2b11b408c"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7013e90a6c26ba4c15bc6fbc42be02ef"></a><!-- doxytag: member="CSPexception::what" ref="a7013e90a6c26ba4c15bc6fbc42be02ef" args="()" -->
|
||||
virtual const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="classCSPexception.html#a7013e90a6c26ba4c15bc6fbc42be02ef">what</a> ()</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the description of the exception. <br/></td></tr>
|
||||
</table>
|
||||
<hr/><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<p>Class for managing exception in <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a>. </p>
|
||||
<hr/><h2>Constructor & Destructor Documentation</h2>
|
||||
<a class="anchor" id="a810bcfbb11d2e35d7b95f1e2b11b408c"></a><!-- doxytag: member="CSPexception::CSPexception" ref="a810bcfbb11d2e35d7b95f1e2b11b408c" args="(const char *m)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">CSPexception::CSPexception </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">const char * </td>
|
||||
<td class="paramname"> <em>m</em></td>
|
||||
<td> ) </td>
|
||||
<td><code> [inline]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Constructor. </p>
|
||||
<dl><dt><b>Parameters:</b></dt><dd>
|
||||
<table border="0" cellspacing="2" cellpadding="0">
|
||||
<tr><td valign="top"></td><td valign="top"><em>m</em> </td><td>Message describing the exception </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||
<li><a class="el" href="csp_09_09-def_8h_source.html">csp++-def.h</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!--- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a></div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 24 01:58:02 2010 for libCSP++ by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
|
||||
</body>
|
||||
</html>
|
69
doc/html/classes.html
Normal file
69
doc/html/classes.html
Normal file
|
@ -0,0 +1,69 @@
|
|||
<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>libCSP++: Alphabetical List</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javaScript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body onload='searchBox.OnSelectItem(0);'>
|
||||
<!-- Generated by Doxygen 1.6.3 -->
|
||||
<script type="text/javascript"><!--
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
--></script>
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
<li>
|
||||
<div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<img id="MSearchSelect" src="search/search.png"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
alt=""/>
|
||||
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>Class Index</h1><div class="qindex"><a class="qindex" href="#letter_C">C</a></div>
|
||||
<table align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
|
||||
<tr><td><a name="letter_C"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah"> C </div></td></tr></table>
|
||||
</td><td><a class="el" href="classCSP.html">CSP</a> </td><td><a class="el" href="classCSPexception.html">CSPexception</a> </td><td><a class="el" href="structCSPvariable.html">CSPvariable</a> </td></tr></table><div class="qindex"><a class="qindex" href="#letter_C">C</a></div>
|
||||
</div>
|
||||
<!--- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a></div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 24 01:58:01 2010 for libCSP++ by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
|
||||
</body>
|
||||
</html>
|
176
doc/html/csp_09_09-def_8h_source.html
Normal file
176
doc/html/csp_09_09-def_8h_source.html
Normal file
|
@ -0,0 +1,176 @@
|
|||
<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>libCSP++: csp++-def.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javaScript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body onload='searchBox.OnSelectItem(0);'>
|
||||
<!-- Generated by Doxygen 1.6.3 -->
|
||||
<script type="text/javascript"><!--
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
--></script>
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
<li>
|
||||
<div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<img id="MSearchSelect" src="search/search.png"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
alt=""/>
|
||||
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="files.html"><span>File List</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<h1>csp++-def.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
|
||||
<a name="l00002"></a>00002 <span class="comment"> * =====================================================================================</span>
|
||||
<a name="l00003"></a>00003 <span class="comment"> *</span>
|
||||
<a name="l00004"></a>00004 <span class="comment"> * Filename: csp++-def.h</span>
|
||||
<a name="l00005"></a>00005 <span class="comment"> *</span>
|
||||
<a name="l00006"></a>00006 <span class="comment"> * Description: Header file containing the CSP class definition. Never include this</span>
|
||||
<a name="l00007"></a>00007 <span class="comment"> * file directly in your sources. Include csp++.h instead.</span>
|
||||
<a name="l00008"></a>00008 <span class="comment"> *</span>
|
||||
<a name="l00009"></a>00009 <span class="comment"> * Version: 1.0</span>
|
||||
<a name="l00010"></a>00010 <span class="comment"> * Created: 16/05/2010 23:16:42</span>
|
||||
<a name="l00011"></a>00011 <span class="comment"> * Revision: none</span>
|
||||
<a name="l00012"></a>00012 <span class="comment"> * Compiler: gcc</span>
|
||||
<a name="l00013"></a>00013 <span class="comment"> *</span>
|
||||
<a name="l00014"></a>00014 <span class="comment"> * Author: BlackLight (http://0x00.ath.cx), <blacklight@autistici.org></span>
|
||||
<a name="l00015"></a>00015 <span class="comment"> * Company: lulz</span>
|
||||
<a name="l00016"></a>00016 <span class="comment"> *</span>
|
||||
<a name="l00017"></a>00017 <span class="comment"> * =====================================================================================</span>
|
||||
<a name="l00018"></a>00018 <span class="comment"> */</span>
|
||||
<a name="l00019"></a>00019
|
||||
<a name="l00020"></a>00020 <span class="preprocessor">#ifndef __CSPPP_H</span>
|
||||
<a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#define __CSPPP_H</span>
|
||||
<a name="l00022"></a>00022 <span class="preprocessor"></span>
|
||||
<a name="l00023"></a>00023 <span class="preprocessor">#ifndef __CSPPP_CPP</span>
|
||||
<a name="l00024"></a>00024 <span class="preprocessor"></span><span class="preprocessor">#error "csp++-def.h must not be included directly - include csp++.h instead"</span>
|
||||
<a name="l00025"></a>00025 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
|
||||
<a name="l00026"></a>00026 <span class="preprocessor"></span>
|
||||
<a name="l00027"></a>00027 <span class="preprocessor">#include <vector></span>
|
||||
<a name="l00028"></a>00028 <span class="preprocessor">#include <exception></span>
|
||||
<a name="l00029"></a>00029
|
||||
<a name="l00034"></a>00034 <span class="keyword">template</span><<span class="keyword">class</span> T>
|
||||
<a name="l00035"></a><a class="code" href="structCSPvariable.html">00035</a> <span class="keyword">struct </span><a class="code" href="structCSPvariable.html" title="Struct used for describing a variable in the CSP.">CSPvariable</a> {
|
||||
<a name="l00037"></a><a class="code" href="structCSPvariable.html#a1fb7622b0576133aa9a2445da22fddac">00037</a> <span class="keywordtype">int</span> <a class="code" href="structCSPvariable.html#a1fb7622b0576133aa9a2445da22fddac" title="Index of the variable.">index</a>;
|
||||
<a name="l00038"></a>00038
|
||||
<a name="l00040"></a><a class="code" href="structCSPvariable.html#a8e7a1cbd9af27e295508794f871dc599">00040</a> <span class="keywordtype">bool</span> <a class="code" href="structCSPvariable.html#a8e7a1cbd9af27e295508794f871dc599" title="If the value of the variable is set explicitely, this value is true.">fixed</a>;
|
||||
<a name="l00041"></a>00041
|
||||
<a name="l00043"></a><a class="code" href="structCSPvariable.html#acc2ff31b449351f04b1c3a2a096e584c">00043</a> T <a class="code" href="structCSPvariable.html#acc2ff31b449351f04b1c3a2a096e584c" title="The value of the variable.">value</a>;
|
||||
<a name="l00044"></a>00044
|
||||
<a name="l00046"></a><a class="code" href="structCSPvariable.html#a66cf86ebf0fbbf8e571d7b585c9528a2">00046</a> std::vector<T> <a class="code" href="structCSPvariable.html#a66cf86ebf0fbbf8e571d7b585c9528a2" title="Domain of the variable, declared as a vector.">domain</a>;
|
||||
<a name="l00047"></a>00047 };
|
||||
<a name="l00048"></a>00048
|
||||
<a name="l00053"></a><a class="code" href="classCSPexception.html">00053</a> <span class="keyword">class </span><a class="code" href="classCSPexception.html" title="Class for managing exception in CSP.">CSPexception</a> : <span class="keyword">public</span> std::exception {
|
||||
<a name="l00054"></a>00054 <span class="keyword">const</span> <span class="keywordtype">char</span>* message;
|
||||
<a name="l00055"></a>00055
|
||||
<a name="l00056"></a>00056 <span class="keyword">public</span>:
|
||||
<a name="l00061"></a><a class="code" href="classCSPexception.html#a810bcfbb11d2e35d7b95f1e2b11b408c">00061</a> <a class="code" href="classCSPexception.html#a810bcfbb11d2e35d7b95f1e2b11b408c" title="Constructor.">CSPexception</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> *m) {
|
||||
<a name="l00062"></a>00062 message = m;
|
||||
<a name="l00063"></a>00063 }
|
||||
<a name="l00064"></a>00064
|
||||
<a name="l00068"></a><a class="code" href="classCSPexception.html#a7013e90a6c26ba4c15bc6fbc42be02ef">00068</a> <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classCSPexception.html#a7013e90a6c26ba4c15bc6fbc42be02ef" title="Return the description of the exception.">what</a>() {
|
||||
<a name="l00069"></a>00069 <span class="keywordflow">return</span> message;
|
||||
<a name="l00070"></a>00070 }
|
||||
<a name="l00071"></a>00071 };
|
||||
<a name="l00072"></a>00072
|
||||
<a name="l00077"></a>00077 <span class="keyword">template</span><<span class="keyword">class</span> T>
|
||||
<a name="l00078"></a><a class="code" href="classCSP.html">00078</a> <span class="keyword">class </span><a class="code" href="classCSP.html" title="Main class for managing a CSP.">CSP</a> {
|
||||
<a name="l00079"></a>00079 <span class="keyword">private</span>:
|
||||
<a name="l00080"></a>00080 <span class="keyword">template</span><<span class="keyword">class</span> TT>
|
||||
<a name="l00081"></a>00081 <span class="keyword">struct </span>arc {
|
||||
<a name="l00082"></a>00082 <a class="code" href="structCSPvariable.html">CSPvariable<TT></a> var[2];
|
||||
<a name="l00083"></a>00083 TT <a class="code" href="classCSP.html#aafa5e1a65d6c5d80780437d8d684f32a" title="Get the value of the i-th variable of the CSP. Be careful: before using this function...">value</a>[2];
|
||||
<a name="l00084"></a>00084 };
|
||||
<a name="l00085"></a>00085
|
||||
<a name="l00086"></a>00086 std::vector< CSPvariable<T> > variables;
|
||||
<a name="l00087"></a>00087 std::vector< bool (*)(std::vector< CSPvariable<T> >) > constraints;
|
||||
<a name="l00088"></a>00088 <span class="preprocessor"> #define constraint constraints[0]</span>
|
||||
<a name="l00089"></a>00089 <span class="preprocessor"></span>
|
||||
<a name="l00090"></a>00090 std::vector< std::vector<T> > __default_domains;
|
||||
<a name="l00091"></a>00091 T __default_value;
|
||||
<a name="l00092"></a>00092 <span class="keywordtype">bool</span> __has_default_value;
|
||||
<a name="l00093"></a>00093 <span class="keyword">static</span> <span class="keywordtype">bool</span> __default_constraint ( std::vector< <a class="code" href="structCSPvariable.html" title="Struct used for describing a variable in the CSP.">CSPvariable<T></a> > v ) { <span class="keywordflow">return</span> <span class="keyword">true</span>; }
|
||||
<a name="l00094"></a>00094 <span class="keywordtype">void</span> __init ( <span class="keywordtype">int</span> n, <span class="keywordtype">bool</span> (*c)(std::vector< <a class="code" href="structCSPvariable.html" title="Struct used for describing a variable in the CSP.">CSPvariable<T></a> >) );
|
||||
<a name="l00095"></a>00095 <span class="keywordtype">void</span> restoreDomains ( <span class="keywordtype">void</span> );
|
||||
<a name="l00096"></a>00096
|
||||
<a name="l00097"></a>00097 <span class="keyword">public</span>:
|
||||
<a name="l00102"></a><a class="code" href="classCSP.html#a3a4c1cfab4f5c2376b5f9da588e73f5a">00102</a> <a class="code" href="classCSP.html#a3a4c1cfab4f5c2376b5f9da588e73f5a" title="Empty constructor - just do nothing, used for declaring an object and initialize...">CSP</a>() {}
|
||||
<a name="l00103"></a>00103
|
||||
<a name="l00113"></a>00113 <a class="code" href="classCSP.html#a3a4c1cfab4f5c2376b5f9da588e73f5a" title="Empty constructor - just do nothing, used for declaring an object and initialize...">CSP</a> ( <span class="keywordtype">int</span> n, <span class="keywordtype">bool</span> (*c)(std::vector< <a class="code" href="structCSPvariable.html" title="Struct used for describing a variable in the CSP.">CSPvariable<T></a> >) = __default_constraint );
|
||||
<a name="l00114"></a>00114
|
||||
<a name="l00128"></a>00128 <a class="code" href="classCSP.html#a3a4c1cfab4f5c2376b5f9da588e73f5a" title="Empty constructor - just do nothing, used for declaring an object and initialize...">CSP</a> ( <span class="keywordtype">int</span> n, T default_value, <span class="keywordtype">bool</span> set_variables = <span class="keyword">false</span>, <span class="keywordtype">bool</span> (*c)(std::vector< <a class="code" href="structCSPvariable.html" title="Struct used for describing a variable in the CSP.">CSPvariable<T></a> >) = __default_constraint );
|
||||
<a name="l00129"></a>00129
|
||||
<a name="l00135"></a>00135 <span class="keywordtype">void</span> <a class="code" href="classCSP.html#a4017c17aac9d3e96d0e821ebbe09da7b" title="Set the domain for the i-th variable.">setDomain</a> ( <span class="keywordtype">size_t</span> index, std::vector<T> domain );
|
||||
<a name="l00136"></a>00136
|
||||
<a name="l00143"></a>00143 <span class="keywordtype">void</span> <a class="code" href="classCSP.html#a4017c17aac9d3e96d0e821ebbe09da7b" title="Set the domain for the i-th variable.">setDomain</a> ( <span class="keywordtype">size_t</span> index, T domain[], <span class="keywordtype">int</span> size );
|
||||
<a name="l00144"></a>00144
|
||||
<a name="l00149"></a>00149 <span class="keywordtype">void</span> <a class="code" href="classCSP.html#a534a0d9bd10fb544f94196bf3c386657" title="Apply the constraint to the CSP as a boolean function.">setConstraint</a> ( <span class="keywordtype">bool</span> (*c)(std::vector< <a class="code" href="structCSPvariable.html" title="Struct used for describing a variable in the CSP.">CSPvariable<T></a> >) );
|
||||
<a name="l00150"></a>00150
|
||||
<a name="l00156"></a>00156 <span class="keywordtype">void</span> <a class="code" href="classCSP.html#a534a0d9bd10fb544f94196bf3c386657" title="Apply the constraint to the CSP as a boolean function.">setConstraint</a> ( std::vector< <span class="keywordtype">bool</span>(*)(std::vector< <a class="code" href="structCSPvariable.html" title="Struct used for describing a variable in the CSP.">CSPvariable<T></a> >) > c );
|
||||
<a name="l00157"></a>00157
|
||||
<a name="l00162"></a>00162 <span class="keywordtype">void</span> <a class="code" href="classCSP.html#a0231b93bceae257f0e1c35041f8fe63f" title="Drops a constraint from the CSP.">dropConstraint</a> ( <span class="keywordtype">size_t</span> index );
|
||||
<a name="l00163"></a>00163
|
||||
<a name="l00168"></a>00168 <span class="keywordtype">void</span> <a class="code" href="classCSP.html#a8dc6aec6ca7e40d198e58b0ec14fee66" title="Append a constraint to the list of the constraint of the CSP.">appendConstraint</a> ( <span class="keywordtype">bool</span> (*c)(std::vector< <a class="code" href="structCSPvariable.html" title="Struct used for describing a variable in the CSP.">CSPvariable<T></a> >) );
|
||||
<a name="l00169"></a>00169
|
||||
<a name="l00173"></a>00173 <span class="keywordtype">void</span> <a class="code" href="classCSP.html#a466845256e638c5e258fd728b641359f" title="Updates the domains of the variables. Any constraint or node fixed value is applied...">refreshDomains</a>( <span class="keywordtype">void</span> );
|
||||
<a name="l00174"></a>00174
|
||||
<a name="l00180"></a>00180 std::vector<T> <a class="code" href="classCSP.html#a2a9a7d8072613f6984795d5495373847" title="Get the domain of the i-th variable.">getDomain</a> ( <span class="keywordtype">size_t</span> index );
|
||||
<a name="l00181"></a>00181
|
||||
<a name="l00186"></a>00186 <span class="keywordtype">size_t</span> <a class="code" href="classCSP.html#a91a0e89bc1882d39b88122bee392c5f3" title="Get the number of variables in the current CSP.">getSize</a> ( <span class="keywordtype">void</span> );
|
||||
<a name="l00187"></a>00187
|
||||
<a name="l00193"></a>00193 <span class="keywordtype">void</span> <a class="code" href="classCSP.html#ac25064c5b2d4e1020173b56913251ebd" title="Set the value of a variable as a constraint.">setValue</a> ( <span class="keywordtype">size_t</span> index, T <a class="code" href="classCSP.html#aafa5e1a65d6c5d80780437d8d684f32a" title="Get the value of the i-th variable of the CSP. Be careful: before using this function...">value</a> );
|
||||
<a name="l00194"></a>00194
|
||||
<a name="l00202"></a>00202 <span class="keywordtype">void</span> <a class="code" href="classCSP.html#a4c0cae125a610f519dc22eaec255a0ae" title="Marks a variable as not set, and if a default value was assigned in the CSP constructor...">unsetValue</a> ( <span class="keywordtype">size_t</span> index );
|
||||
<a name="l00203"></a>00203
|
||||
<a name="l00208"></a>00208 <span class="keywordtype">bool</span> <a class="code" href="classCSP.html#a7ef9eb91c38815c9d82182696a6bd5d3" title="Check if the current CSP, with the applied constraints, is satisfiable.">isSatisfiable</a> ( <span class="keywordtype">void</span> );
|
||||
<a name="l00209"></a>00209
|
||||
<a name="l00216"></a>00216 <span class="keywordtype">bool</span> <a class="code" href="classCSP.html#ae96286c6c7dfb6fe077544e0d4af15f4" title="Check if the CSP, with the given variables, domains and constraints, admits a unique...">hasUniqueSolution</a> ( <span class="keywordtype">void</span> );
|
||||
<a name="l00217"></a>00217
|
||||
<a name="l00223"></a>00223 <span class="keywordtype">void</span> <a class="code" href="classCSP.html#ac74cb751589a58bf6f2815f6878d2213" title="Check if any of the variables in the CSP has a domain containing an only item. If...">assignUniqueDomains</a> ( <span class="keywordtype">void</span> );
|
||||
<a name="l00229"></a>00229 <span class="keywordtype">bool</span> <a class="code" href="classCSP.html#a213dafc1aae7b1825371810a511eca4f" title="Check if the i-th variable in the CSP has a fixed value.">isSet</a> ( <span class="keywordtype">size_t</span> i );
|
||||
<a name="l00230"></a>00230
|
||||
<a name="l00240"></a>00240 T <a class="code" href="classCSP.html#aafa5e1a65d6c5d80780437d8d684f32a" title="Get the value of the i-th variable of the CSP. Be careful: before using this function...">value</a> ( <span class="keywordtype">size_t</span> i );
|
||||
<a name="l00241"></a>00241 };
|
||||
<a name="l00242"></a>00242
|
||||
<a name="l00243"></a>00243 <span class="preprocessor">#endif</span>
|
||||
<a name="l00244"></a>00244 <span class="preprocessor"></span>
|
||||
</pre></div></div>
|
||||
<!--- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a></div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 24 01:58:01 2010 for libCSP++ by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
|
||||
</body>
|
||||
</html>
|
90
doc/html/csp_09_09_8h_source.html
Normal file
90
doc/html/csp_09_09_8h_source.html
Normal file
|
@ -0,0 +1,90 @@
|
|||
<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>libCSP++: csp++.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javaScript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body onload='searchBox.OnSelectItem(0);'>
|
||||
<!-- Generated by Doxygen 1.6.3 -->
|
||||
<script type="text/javascript"><!--
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
--></script>
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
<li>
|
||||
<div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<img id="MSearchSelect" src="search/search.png"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
alt=""/>
|
||||
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="files.html"><span>File List</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<h1>csp++.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
|
||||
<a name="l00002"></a>00002 <span class="comment"> * =====================================================================================</span>
|
||||
<a name="l00003"></a>00003 <span class="comment"> *</span>
|
||||
<a name="l00004"></a>00004 <span class="comment"> * Filename: csp++.h</span>
|
||||
<a name="l00005"></a>00005 <span class="comment"> *</span>
|
||||
<a name="l00006"></a>00006 <span class="comment"> * Description: </span>
|
||||
<a name="l00007"></a>00007 <span class="comment"> *</span>
|
||||
<a name="l00008"></a>00008 <span class="comment"> * Version: 1.0</span>
|
||||
<a name="l00009"></a>00009 <span class="comment"> * Created: 23/05/2010 23:27:43</span>
|
||||
<a name="l00010"></a>00010 <span class="comment"> * Revision: none</span>
|
||||
<a name="l00011"></a>00011 <span class="comment"> * Compiler: gcc</span>
|
||||
<a name="l00012"></a>00012 <span class="comment"> *</span>
|
||||
<a name="l00013"></a>00013 <span class="comment"> * Author: BlackLight (http://0x00.ath.cx), <blacklight@autistici.org></span>
|
||||
<a name="l00014"></a>00014 <span class="comment"> * Company: lulz</span>
|
||||
<a name="l00015"></a>00015 <span class="comment"> *</span>
|
||||
<a name="l00016"></a>00016 <span class="comment"> * =====================================================================================</span>
|
||||
<a name="l00017"></a>00017 <span class="comment"> */</span>
|
||||
<a name="l00018"></a>00018
|
||||
<a name="l00019"></a>00019 <span class="comment">// Yes, I know it looks stupid, but ask C++ standard developers about this.</span>
|
||||
<a name="l00020"></a>00020 <span class="comment">// C++ can't expand template class code until a type is explicitely specified.</span>
|
||||
<a name="l00021"></a>00021 <span class="comment">// This is nearly like not using templates at all, but join me in asking C++</span>
|
||||
<a name="l00022"></a>00022 <span class="comment">// compilers developers to massively allow the export keyword and change the</span>
|
||||
<a name="l00023"></a>00023 <span class="comment">// way templates are managed. Until that moment, you must always include the</span>
|
||||
<a name="l00024"></a>00024 <span class="comment">// .cpp file of the library inside your source code as well, and specify later</span>
|
||||
<a name="l00025"></a>00025 <span class="comment">// the types you're going to use this template class for</span>
|
||||
<a name="l00026"></a>00026
|
||||
<a name="l00027"></a>00027 <span class="preprocessor">#include "csp++.cpp"</span>
|
||||
<a name="l00028"></a>00028
|
||||
</pre></div></div>
|
||||
<!--- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a></div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 24 01:58:01 2010 for libCSP++ by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
|
||||
</body>
|
||||
</html>
|
545
doc/html/doxygen.css
Normal file
545
doc/html/doxygen.css
Normal file
|
@ -0,0 +1,545 @@
|
|||
/* The standard CSS for doxygen */
|
||||
|
||||
body, table, div, p, dl {
|
||||
font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
/* @group Heading Levels */
|
||||
|
||||
h1 {
|
||||
text-align: center;
|
||||
font-size: 150%;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 120%;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
dt {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
div.multicol {
|
||||
-moz-column-gap: 1em;
|
||||
-webkit-column-gap: 1em;
|
||||
-moz-column-count: 3;
|
||||
-webkit-column-count: 3;
|
||||
}
|
||||
|
||||
p.startli, p.startdd, p.starttd {
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
p.endli {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
p.enddd {
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
p.endtd {
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
||||
caption {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
span.legend {
|
||||
font-size: 70%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h3.version {
|
||||
font-size: 90%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
div.qindex, div.navtab{
|
||||
background-color: #e8eef2;
|
||||
border: 1px solid #84b0c7;
|
||||
text-align: center;
|
||||
margin: 2px;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
div.qindex, div.navpath {
|
||||
width: 100%;
|
||||
line-height: 140%;
|
||||
}
|
||||
|
||||
div.navtab {
|
||||
margin-right: 15px;
|
||||
}
|
||||
|
||||
/* @group Link Styling */
|
||||
|
||||
a {
|
||||
color: #153788;
|
||||
font-weight: normal;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.contents a:visited {
|
||||
color: #1b77c5;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
a.qindex {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
a.qindexHL {
|
||||
font-weight: bold;
|
||||
background-color: #6666cc;
|
||||
color: #ffffff;
|
||||
border: 1px double #9295C2;
|
||||
}
|
||||
|
||||
.contents a.qindexHL:visited {
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
a.el {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
a.elRef {
|
||||
}
|
||||
|
||||
a.code {
|
||||
color: #3030f0;
|
||||
}
|
||||
|
||||
a.codeRef {
|
||||
color: #3030f0;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
||||
dl.el {
|
||||
margin-left: -1cm;
|
||||
}
|
||||
|
||||
.fragment {
|
||||
font-family: monospace, fixed;
|
||||
font-size: 105%;
|
||||
}
|
||||
|
||||
pre.fragment {
|
||||
border: 1px solid #CCCCCC;
|
||||
background-color: #f5f5f5;
|
||||
padding: 4px 6px;
|
||||
margin: 4px 8px 4px 2px;
|
||||
overflow: auto;
|
||||
word-wrap: break-word;
|
||||
font-size: 9pt;
|
||||
line-height: 125%;
|
||||
}
|
||||
|
||||
div.ah {
|
||||
background-color: black;
|
||||
font-weight: bold;
|
||||
color: #ffffff;
|
||||
margin-bottom: 3px;
|
||||
margin-top: 3px
|
||||
}
|
||||
|
||||
div.groupHeader {
|
||||
margin-left: 16px;
|
||||
margin-top: 12px;
|
||||
margin-bottom: 6px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
div.groupText {
|
||||
margin-left: 16px;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
body {
|
||||
background: white;
|
||||
color: black;
|
||||
margin-right: 20px;
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
td.indexkey {
|
||||
background-color: #e8eef2;
|
||||
font-weight: bold;
|
||||
border: 1px solid #CCCCCC;
|
||||
margin: 2px 0px 2px 0;
|
||||
padding: 2px 10px;
|
||||
}
|
||||
|
||||
td.indexvalue {
|
||||
background-color: #e8eef2;
|
||||
border: 1px solid #CCCCCC;
|
||||
padding: 2px 10px;
|
||||
margin: 2px 0px;
|
||||
}
|
||||
|
||||
tr.memlist {
|
||||
background-color: #f0f0f0;
|
||||
}
|
||||
|
||||
p.formulaDsp {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
img.formulaDsp {
|
||||
|
||||
}
|
||||
|
||||
img.formulaInl {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
div.center {
|
||||
text-align: center;
|
||||
margin-top: 0px;
|
||||
margin-bottom: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
div.center img {
|
||||
border: 0px;
|
||||
}
|
||||
|
||||
img.footer {
|
||||
border: 0px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
/* @group Code Colorization */
|
||||
|
||||
span.keyword {
|
||||
color: #008000
|
||||
}
|
||||
|
||||
span.keywordtype {
|
||||
color: #604020
|
||||
}
|
||||
|
||||
span.keywordflow {
|
||||
color: #e08000
|
||||
}
|
||||
|
||||
span.comment {
|
||||
color: #800000
|
||||
}
|
||||
|
||||
span.preprocessor {
|
||||
color: #806020
|
||||
}
|
||||
|
||||
span.stringliteral {
|
||||
color: #002080
|
||||
}
|
||||
|
||||
span.charliteral {
|
||||
color: #008080
|
||||
}
|
||||
|
||||
span.vhdldigit {
|
||||
color: #ff00ff
|
||||
}
|
||||
|
||||
span.vhdlchar {
|
||||
color: #000000
|
||||
}
|
||||
|
||||
span.vhdlkeyword {
|
||||
color: #700070
|
||||
}
|
||||
|
||||
span.vhdllogic {
|
||||
color: #ff0000
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
||||
.search {
|
||||
color: #003399;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
form.search {
|
||||
margin-bottom: 0px;
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
input.search {
|
||||
font-size: 75%;
|
||||
color: #000080;
|
||||
font-weight: normal;
|
||||
background-color: #e8eef2;
|
||||
}
|
||||
|
||||
td.tiny {
|
||||
font-size: 75%;
|
||||
}
|
||||
|
||||
.dirtab {
|
||||
padding: 4px;
|
||||
border-collapse: collapse;
|
||||
border: 1px solid #84b0c7;
|
||||
}
|
||||
|
||||
th.dirtab {
|
||||
background: #e8eef2;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
hr {
|
||||
height: 0px;
|
||||
border: none;
|
||||
border-top: 1px solid #666;
|
||||
}
|
||||
|
||||
hr.footer {
|
||||
height: 1px;
|
||||
}
|
||||
|
||||
/* @group Member Descriptions */
|
||||
|
||||
.mdescLeft, .mdescRight,
|
||||
.memItemLeft, .memItemRight,
|
||||
.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
|
||||
background-color: #FAFAFA;
|
||||
border: none;
|
||||
margin: 4px;
|
||||
padding: 1px 0 0 8px;
|
||||
}
|
||||
|
||||
.mdescLeft, .mdescRight {
|
||||
padding: 0px 8px 4px 8px;
|
||||
color: #555;
|
||||
}
|
||||
|
||||
.memItemLeft, .memItemRight, .memTemplParams {
|
||||
border-top: 1px solid #ccc;
|
||||
}
|
||||
|
||||
.memItemLeft, .memTemplItemLeft {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.memTemplParams {
|
||||
color: #606060;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
||||
/* @group Member Details */
|
||||
|
||||
/* Styles for detailed member documentation */
|
||||
|
||||
.memtemplate {
|
||||
font-size: 80%;
|
||||
color: #606060;
|
||||
font-weight: normal;
|
||||
margin-left: 3px;
|
||||
}
|
||||
|
||||
.memnav {
|
||||
background-color: #e8eef2;
|
||||
border: 1px solid #84b0c7;
|
||||
text-align: center;
|
||||
margin: 2px;
|
||||
margin-right: 15px;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
.memitem {
|
||||
padding: 0;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.memname {
|
||||
white-space: nowrap;
|
||||
font-weight: bold;
|
||||
margin-left: 6px;
|
||||
}
|
||||
|
||||
.memproto {
|
||||
border-top: 1px solid #84b0c7;
|
||||
border-left: 1px solid #84b0c7;
|
||||
border-right: 1px solid #84b0c7;
|
||||
padding: 0;
|
||||
background-color: #d5e1e8;
|
||||
font-weight: bold;
|
||||
/* firefox specific markup */
|
||||
background-image: -moz-linear-gradient(rgba(228, 233, 245, 1.0) 0%, rgba(193, 205, 232, 1.0) 100%);
|
||||
-moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
|
||||
-moz-border-radius-topright: 8px;
|
||||
-moz-border-radius-topleft: 8px;
|
||||
/* webkit specific markup */
|
||||
background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(228, 233, 245, 1.0)), to(rgba(193, 205, 232, 1.0)));
|
||||
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
|
||||
-webkit-border-top-right-radius: 8px;
|
||||
-webkit-border-top-left-radius: 8px;
|
||||
|
||||
}
|
||||
|
||||
.memdoc {
|
||||
border-bottom: 1px solid #84b0c7;
|
||||
border-left: 1px solid #84b0c7;
|
||||
border-right: 1px solid #84b0c7;
|
||||
padding: 2px 5px;
|
||||
background-color: #eef3f5;
|
||||
border-top-width: 0;
|
||||
/* firefox specific markup */
|
||||
-moz-border-radius-bottomleft: 8px;
|
||||
-moz-border-radius-bottomright: 8px;
|
||||
-moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
|
||||
/* webkit specific markup */
|
||||
-webkit-border-bottom-left-radius: 8px;
|
||||
-webkit-border-bottom-right-radius: 8px;
|
||||
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
|
||||
.paramkey {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.paramtype {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.paramname {
|
||||
color: #602020;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.paramname em {
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
||||
/* @group Directory (tree) */
|
||||
|
||||
/* for the tree view */
|
||||
|
||||
.ftvtree {
|
||||
font-family: sans-serif;
|
||||
margin: 0.5em;
|
||||
}
|
||||
|
||||
/* these are for tree view when used as main index */
|
||||
|
||||
.directory {
|
||||
font-size: 9pt;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.directory h3 {
|
||||
margin: 0px;
|
||||
margin-top: 1em;
|
||||
font-size: 11pt;
|
||||
}
|
||||
|
||||
/*
|
||||
The following two styles can be used to replace the root node title
|
||||
with an image of your choice. Simply uncomment the next two styles,
|
||||
specify the name of your image and be sure to set 'height' to the
|
||||
proper pixel height of your image.
|
||||
*/
|
||||
|
||||
/*
|
||||
.directory h3.swap {
|
||||
height: 61px;
|
||||
background-repeat: no-repeat;
|
||||
background-image: url("yourimage.gif");
|
||||
}
|
||||
.directory h3.swap span {
|
||||
display: none;
|
||||
}
|
||||
*/
|
||||
|
||||
.directory > h3 {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.directory p {
|
||||
margin: 0px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.directory div {
|
||||
display: none;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
.directory img {
|
||||
vertical-align: -30%;
|
||||
}
|
||||
|
||||
/* these are for tree view when not used as main index */
|
||||
|
||||
.directory-alt {
|
||||
font-size: 100%;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.directory-alt h3 {
|
||||
margin: 0px;
|
||||
margin-top: 1em;
|
||||
font-size: 11pt;
|
||||
}
|
||||
|
||||
.directory-alt > h3 {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.directory-alt p {
|
||||
margin: 0px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.directory-alt div {
|
||||
display: none;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
.directory-alt img {
|
||||
vertical-align: -30%;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
||||
address {
|
||||
font-style: normal;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
table.doxtable {
|
||||
border-collapse:collapse;
|
||||
}
|
||||
|
||||
table.doxtable td, table.doxtable th {
|
||||
border: 1px solid #153788;
|
||||
padding: 3px 7px 2px;
|
||||
}
|
||||
|
||||
table.doxtable th {
|
||||
background-color: #254798;
|
||||
color: #FFFFFF;
|
||||
font-size: 110%;
|
||||
padding-bottom: 4px;
|
||||
padding-top: 5px;
|
||||
text-align:left;
|
||||
}
|
||||
|
BIN
doc/html/doxygen.png
Normal file
BIN
doc/html/doxygen.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.3 KiB |
68
doc/html/files.html
Normal file
68
doc/html/files.html
Normal file
|
@ -0,0 +1,68 @@
|
|||
<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>libCSP++: File Index</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javaScript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body onload='searchBox.OnSelectItem(0);'>
|
||||
<!-- Generated by Doxygen 1.6.3 -->
|
||||
<script type="text/javascript"><!--
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
--></script>
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
<li>
|
||||
<div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<img id="MSearchSelect" src="search/search.png"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
alt=""/>
|
||||
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li class="current"><a href="files.html"><span>File List</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>File List</h1>Here is a list of all documented files with brief descriptions:<table>
|
||||
<tr><td class="indexkey"><b>csp++-def.h</b> <a href="csp_09_09-def_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
|
||||
<tr><td class="indexkey"><b>csp++.h</b> <a href="csp_09_09_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
|
||||
</table>
|
||||
</div>
|
||||
<!--- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a></div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 24 01:58:02 2010 for libCSP++ by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
|
||||
</body>
|
||||
</html>
|
135
doc/html/functions.html
Normal file
135
doc/html/functions.html
Normal file
|
@ -0,0 +1,135 @@
|
|||
<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>libCSP++: Class Members</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javaScript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body onload='searchBox.OnSelectItem(0);'>
|
||||
<!-- Generated by Doxygen 1.6.3 -->
|
||||
<script type="text/javascript"><!--
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
--></script>
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
<li>
|
||||
<div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<img id="MSearchSelect" src="search/search.png"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
alt=""/>
|
||||
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||
<li class="current"><a href="functions.html"><span>Class Members</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li class="current"><a href="functions.html"><span>All</span></a></li>
|
||||
<li><a href="functions_func.html"><span>Functions</span></a></li>
|
||||
<li><a href="functions_vars.html"><span>Variables</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
Here is a list of all documented class members with links to the class documentation for each member:<ul>
|
||||
<li>appendConstraint()
|
||||
: <a class="el" href="classCSP.html#a8dc6aec6ca7e40d198e58b0ec14fee66">CSP< T ></a>
|
||||
</li>
|
||||
<li>assignUniqueDomains()
|
||||
: <a class="el" href="classCSP.html#ac74cb751589a58bf6f2815f6878d2213">CSP< T ></a>
|
||||
</li>
|
||||
<li>CSP()
|
||||
: <a class="el" href="classCSP.html#a3a4c1cfab4f5c2376b5f9da588e73f5a">CSP< T ></a>
|
||||
</li>
|
||||
<li>CSPexception()
|
||||
: <a class="el" href="classCSPexception.html#a810bcfbb11d2e35d7b95f1e2b11b408c">CSPexception</a>
|
||||
</li>
|
||||
<li>domain
|
||||
: <a class="el" href="structCSPvariable.html#a66cf86ebf0fbbf8e571d7b585c9528a2">CSPvariable< T ></a>
|
||||
</li>
|
||||
<li>dropConstraint()
|
||||
: <a class="el" href="classCSP.html#a0231b93bceae257f0e1c35041f8fe63f">CSP< T ></a>
|
||||
</li>
|
||||
<li>fixed
|
||||
: <a class="el" href="structCSPvariable.html#a8e7a1cbd9af27e295508794f871dc599">CSPvariable< T ></a>
|
||||
</li>
|
||||
<li>getDomain()
|
||||
: <a class="el" href="classCSP.html#a2a9a7d8072613f6984795d5495373847">CSP< T ></a>
|
||||
</li>
|
||||
<li>getSize()
|
||||
: <a class="el" href="classCSP.html#a91a0e89bc1882d39b88122bee392c5f3">CSP< T ></a>
|
||||
</li>
|
||||
<li>hasUniqueSolution()
|
||||
: <a class="el" href="classCSP.html#ae96286c6c7dfb6fe077544e0d4af15f4">CSP< T ></a>
|
||||
</li>
|
||||
<li>index
|
||||
: <a class="el" href="structCSPvariable.html#a1fb7622b0576133aa9a2445da22fddac">CSPvariable< T ></a>
|
||||
</li>
|
||||
<li>isSatisfiable()
|
||||
: <a class="el" href="classCSP.html#a7ef9eb91c38815c9d82182696a6bd5d3">CSP< T ></a>
|
||||
</li>
|
||||
<li>isSet()
|
||||
: <a class="el" href="classCSP.html#a213dafc1aae7b1825371810a511eca4f">CSP< T ></a>
|
||||
</li>
|
||||
<li>refreshDomains()
|
||||
: <a class="el" href="classCSP.html#a466845256e638c5e258fd728b641359f">CSP< T ></a>
|
||||
</li>
|
||||
<li>setConstraint()
|
||||
: <a class="el" href="classCSP.html#a534a0d9bd10fb544f94196bf3c386657">CSP< T ></a>
|
||||
</li>
|
||||
<li>setDomain()
|
||||
: <a class="el" href="classCSP.html#a65518e67e33e31bff1b5f9aabdf80a01">CSP< T ></a>
|
||||
</li>
|
||||
<li>setValue()
|
||||
: <a class="el" href="classCSP.html#ac25064c5b2d4e1020173b56913251ebd">CSP< T ></a>
|
||||
</li>
|
||||
<li>unsetValue()
|
||||
: <a class="el" href="classCSP.html#a4c0cae125a610f519dc22eaec255a0ae">CSP< T ></a>
|
||||
</li>
|
||||
<li>value
|
||||
: <a class="el" href="structCSPvariable.html#acc2ff31b449351f04b1c3a2a096e584c">CSPvariable< T ></a>
|
||||
, <a class="el" href="classCSP.html#aafa5e1a65d6c5d80780437d8d684f32a">CSP< T ></a>
|
||||
</li>
|
||||
<li>what()
|
||||
: <a class="el" href="classCSPexception.html#a7013e90a6c26ba4c15bc6fbc42be02ef">CSPexception</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!--- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a></div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 24 01:58:01 2010 for libCSP++ by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
|
||||
</body>
|
||||
</html>
|
125
doc/html/functions_func.html
Normal file
125
doc/html/functions_func.html
Normal file
|
@ -0,0 +1,125 @@
|
|||
<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>libCSP++: Class Members - Functions</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javaScript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body onload='searchBox.OnSelectItem(0);'>
|
||||
<!-- Generated by Doxygen 1.6.3 -->
|
||||
<script type="text/javascript"><!--
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
--></script>
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
<li>
|
||||
<div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<img id="MSearchSelect" src="search/search.png"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
alt=""/>
|
||||
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||
<li class="current"><a href="functions.html"><span>Class Members</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="functions.html"><span>All</span></a></li>
|
||||
<li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
|
||||
<li><a href="functions_vars.html"><span>Variables</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<ul>
|
||||
<li>appendConstraint()
|
||||
: <a class="el" href="classCSP.html#a8dc6aec6ca7e40d198e58b0ec14fee66">CSP< T ></a>
|
||||
</li>
|
||||
<li>assignUniqueDomains()
|
||||
: <a class="el" href="classCSP.html#ac74cb751589a58bf6f2815f6878d2213">CSP< T ></a>
|
||||
</li>
|
||||
<li>CSP()
|
||||
: <a class="el" href="classCSP.html#a3a4c1cfab4f5c2376b5f9da588e73f5a">CSP< T ></a>
|
||||
</li>
|
||||
<li>CSPexception()
|
||||
: <a class="el" href="classCSPexception.html#a810bcfbb11d2e35d7b95f1e2b11b408c">CSPexception</a>
|
||||
</li>
|
||||
<li>dropConstraint()
|
||||
: <a class="el" href="classCSP.html#a0231b93bceae257f0e1c35041f8fe63f">CSP< T ></a>
|
||||
</li>
|
||||
<li>getDomain()
|
||||
: <a class="el" href="classCSP.html#a2a9a7d8072613f6984795d5495373847">CSP< T ></a>
|
||||
</li>
|
||||
<li>getSize()
|
||||
: <a class="el" href="classCSP.html#a91a0e89bc1882d39b88122bee392c5f3">CSP< T ></a>
|
||||
</li>
|
||||
<li>hasUniqueSolution()
|
||||
: <a class="el" href="classCSP.html#ae96286c6c7dfb6fe077544e0d4af15f4">CSP< T ></a>
|
||||
</li>
|
||||
<li>isSatisfiable()
|
||||
: <a class="el" href="classCSP.html#a7ef9eb91c38815c9d82182696a6bd5d3">CSP< T ></a>
|
||||
</li>
|
||||
<li>isSet()
|
||||
: <a class="el" href="classCSP.html#a213dafc1aae7b1825371810a511eca4f">CSP< T ></a>
|
||||
</li>
|
||||
<li>refreshDomains()
|
||||
: <a class="el" href="classCSP.html#a466845256e638c5e258fd728b641359f">CSP< T ></a>
|
||||
</li>
|
||||
<li>setConstraint()
|
||||
: <a class="el" href="classCSP.html#a534a0d9bd10fb544f94196bf3c386657">CSP< T ></a>
|
||||
</li>
|
||||
<li>setDomain()
|
||||
: <a class="el" href="classCSP.html#a65518e67e33e31bff1b5f9aabdf80a01">CSP< T ></a>
|
||||
</li>
|
||||
<li>setValue()
|
||||
: <a class="el" href="classCSP.html#ac25064c5b2d4e1020173b56913251ebd">CSP< T ></a>
|
||||
</li>
|
||||
<li>unsetValue()
|
||||
: <a class="el" href="classCSP.html#a4c0cae125a610f519dc22eaec255a0ae">CSP< T ></a>
|
||||
</li>
|
||||
<li>value()
|
||||
: <a class="el" href="classCSP.html#aafa5e1a65d6c5d80780437d8d684f32a">CSP< T ></a>
|
||||
</li>
|
||||
<li>what()
|
||||
: <a class="el" href="classCSPexception.html#a7013e90a6c26ba4c15bc6fbc42be02ef">CSPexception</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!--- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a></div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 24 01:58:01 2010 for libCSP++ by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
|
||||
</body>
|
||||
</html>
|
86
doc/html/functions_vars.html
Normal file
86
doc/html/functions_vars.html
Normal file
|
@ -0,0 +1,86 @@
|
|||
<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>libCSP++: Class Members - Variables</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javaScript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body onload='searchBox.OnSelectItem(0);'>
|
||||
<!-- Generated by Doxygen 1.6.3 -->
|
||||
<script type="text/javascript"><!--
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
--></script>
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
<li>
|
||||
<div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<img id="MSearchSelect" src="search/search.png"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
alt=""/>
|
||||
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||
<li class="current"><a href="functions.html"><span>Class Members</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="functions.html"><span>All</span></a></li>
|
||||
<li><a href="functions_func.html"><span>Functions</span></a></li>
|
||||
<li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<ul>
|
||||
<li>domain
|
||||
: <a class="el" href="structCSPvariable.html#a66cf86ebf0fbbf8e571d7b585c9528a2">CSPvariable< T ></a>
|
||||
</li>
|
||||
<li>fixed
|
||||
: <a class="el" href="structCSPvariable.html#a8e7a1cbd9af27e295508794f871dc599">CSPvariable< T ></a>
|
||||
</li>
|
||||
<li>index
|
||||
: <a class="el" href="structCSPvariable.html#a1fb7622b0576133aa9a2445da22fddac">CSPvariable< T ></a>
|
||||
</li>
|
||||
<li>value
|
||||
: <a class="el" href="structCSPvariable.html#acc2ff31b449351f04b1c3a2a096e584c">CSPvariable< T ></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!--- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a></div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 24 01:58:01 2010 for libCSP++ by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
|
||||
</body>
|
||||
</html>
|
59
doc/html/index.html
Normal file
59
doc/html/index.html
Normal file
|
@ -0,0 +1,59 @@
|
|||
<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>libCSP++: Main Page</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javaScript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body onload='searchBox.OnSelectItem(0);'>
|
||||
<!-- Generated by Doxygen 1.6.3 -->
|
||||
<script type="text/javascript"><!--
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
--></script>
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li class="current"><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
<li>
|
||||
<div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<img id="MSearchSelect" src="search/search.png"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
alt=""/>
|
||||
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>libCSP++ Documentation</h1><h3 class="version">0.1 </h3></div>
|
||||
<!--- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a></div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 24 01:58:01 2010 for libCSP++ by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
|
||||
</body>
|
||||
</html>
|
117
doc/html/installdox
Executable file
117
doc/html/installdox
Executable file
|
@ -0,0 +1,117 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
%subst = ( );
|
||||
$quiet = 0;
|
||||
|
||||
if (open(F,"search.cfg"))
|
||||
{
|
||||
$_=<F> ; s/[ \t\n]*$//g ; $subst{"_doc"} = $_;
|
||||
$_=<F> ; s/[ \t\n]*$//g ; $subst{"_cgi"} = $_;
|
||||
}
|
||||
|
||||
while ( @ARGV ) {
|
||||
$_ = shift @ARGV;
|
||||
if ( s/^-// ) {
|
||||
if ( /^l(.*)/ ) {
|
||||
$v = ($1 eq "") ? shift @ARGV : $1;
|
||||
($v =~ /\/$/) || ($v .= "/");
|
||||
$_ = $v;
|
||||
if ( /(.+)\@(.+)/ ) {
|
||||
if ( exists $subst{$1} ) {
|
||||
$subst{$1} = $2;
|
||||
} else {
|
||||
print STDERR "Unknown tag file $1 given with option -l\n";
|
||||
&usage();
|
||||
}
|
||||
} else {
|
||||
print STDERR "Argument $_ is invalid for option -l\n";
|
||||
&usage();
|
||||
}
|
||||
}
|
||||
elsif ( /^q/ ) {
|
||||
$quiet = 1;
|
||||
}
|
||||
elsif ( /^\?|^h/ ) {
|
||||
&usage();
|
||||
}
|
||||
else {
|
||||
print STDERR "Illegal option -$_\n";
|
||||
&usage();
|
||||
}
|
||||
}
|
||||
else {
|
||||
push (@files, $_ );
|
||||
}
|
||||
}
|
||||
|
||||
foreach $sub (keys %subst)
|
||||
{
|
||||
if ( $subst{$sub} eq "" )
|
||||
{
|
||||
print STDERR "No substitute given for tag file `$sub'\n";
|
||||
&usage();
|
||||
}
|
||||
elsif ( ! $quiet && $sub ne "_doc" && $sub ne "_cgi" )
|
||||
{
|
||||
print "Substituting $subst{$sub} for each occurence of tag file $sub\n";
|
||||
}
|
||||
}
|
||||
|
||||
if ( ! @files ) {
|
||||
if (opendir(D,".")) {
|
||||
foreach $file ( readdir(D) ) {
|
||||
$match = ".html";
|
||||
next if ( $file =~ /^\.\.?$/ );
|
||||
($file =~ /$match/) && (push @files, $file);
|
||||
($file =~ "tree.js") && (push @files, $file);
|
||||
}
|
||||
closedir(D);
|
||||
}
|
||||
}
|
||||
|
||||
if ( ! @files ) {
|
||||
print STDERR "Warning: No input files given and none found!\n";
|
||||
}
|
||||
|
||||
foreach $f (@files)
|
||||
{
|
||||
if ( ! $quiet ) {
|
||||
print "Editing: $f...\n";
|
||||
}
|
||||
$oldf = $f;
|
||||
$f .= ".bak";
|
||||
unless (rename $oldf,$f) {
|
||||
print STDERR "Error: cannot rename file $oldf\n";
|
||||
exit 1;
|
||||
}
|
||||
if (open(F,"<$f")) {
|
||||
unless (open(G,">$oldf")) {
|
||||
print STDERR "Error: opening file $oldf for writing\n";
|
||||
exit 1;
|
||||
}
|
||||
if ($oldf ne "tree.js") {
|
||||
while (<F>) {
|
||||
s/doxygen\=\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\" (href|src)=\"\2/doxygen\=\"$1:$subst{$1}\" \3=\"$subst{$1}/g;
|
||||
print G "$_";
|
||||
}
|
||||
}
|
||||
else {
|
||||
while (<F>) {
|
||||
s/\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\", \"\2/\"$1:$subst{$1}\" ,\"$subst{$1}/g;
|
||||
print G "$_";
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
print STDERR "Warning file $f does not exist\n";
|
||||
}
|
||||
unlink $f;
|
||||
}
|
||||
|
||||
sub usage {
|
||||
print STDERR "Usage: installdox [options] [html-file [html-file ...]]\n";
|
||||
print STDERR "Options:\n";
|
||||
print STDERR " -l tagfile\@linkName tag file + URL or directory \n";
|
||||
print STDERR " -q Quiet mode\n\n";
|
||||
exit 1;
|
||||
}
|
32
doc/html/search/all_61.html
Normal file
32
doc/html/search/all_61.html
Normal file
|
@ -0,0 +1,32 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html><head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRResult" id="SR_appendconstraint">
|
||||
<div class="SREntry">
|
||||
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../classCSP.html#a8dc6aec6ca7e40d198e58b0ec14fee66" target="_parent">appendConstraint</a>
|
||||
<span class="SRScope">CSP</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRResult" id="SR_assignuniquedomains">
|
||||
<div class="SREntry">
|
||||
<a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../classCSP.html#ac74cb751589a58bf6f2815f6878d2213" target="_parent">assignUniqueDomains</a>
|
||||
<span class="SRScope">CSP</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript"><!--
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
--></script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
50
doc/html/search/all_63.html
Normal file
50
doc/html/search/all_63.html
Normal file
|
@ -0,0 +1,50 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html><head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRResult" id="SR_csp">
|
||||
<div class="SREntry">
|
||||
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_csp')">CSP</a>
|
||||
<div class="SRChildren">
|
||||
<a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../classCSP.html" target="_parent">CSP< T ></a>
|
||||
<a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../classCSP.html#a3a4c1cfab4f5c2376b5f9da588e73f5a" target="_parent">CSP::CSP()</a>
|
||||
<a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../classCSP.html#ad49548121582cc2d59e0d7f100092b75" target="_parent">CSP::CSP(int n, bool(*c)(std::vector< CSPvariable< T > >)=__default_constraint)</a>
|
||||
<a id="Item0_c3" onkeydown="return searchResults.NavChild(event,0,3)" onkeypress="return searchResults.NavChild(event,0,3)" onkeyup="return searchResults.NavChild(event,0,3)" class="SRScope" href="../classCSP.html#a734bb08d8f45394a2acfc8822981a6d0" target="_parent">CSP::CSP(int n, T default_value, bool set_variables=false, bool(*c)(std::vector< CSPvariable< T > >)=__default_constraint)</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRResult" id="SR_cspexception">
|
||||
<div class="SREntry">
|
||||
<a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_cspexception')">CSPexception</a>
|
||||
<div class="SRChildren">
|
||||
<a id="Item1_c0" onkeydown="return searchResults.NavChild(event,1,0)" onkeypress="return searchResults.NavChild(event,1,0)" onkeyup="return searchResults.NavChild(event,1,0)" class="SRScope" href="../classCSPexception.html" target="_parent">CSPexception</a>
|
||||
<a id="Item1_c1" onkeydown="return searchResults.NavChild(event,1,1)" onkeypress="return searchResults.NavChild(event,1,1)" onkeyup="return searchResults.NavChild(event,1,1)" class="SRScope" href="../classCSPexception.html#a810bcfbb11d2e35d7b95f1e2b11b408c" target="_parent">CSPexception::CSPexception()</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRResult" id="SR_cspvariable">
|
||||
<div class="SREntry">
|
||||
<a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../structCSPvariable.html" target="_parent">CSPvariable</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRResult" id="SR_cspvariable_3c_20tt_20_3e">
|
||||
<div class="SREntry">
|
||||
<a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../structCSPvariable.html" target="_parent">CSPvariable< TT ></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript"><!--
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
--></script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
32
doc/html/search/all_64.html
Normal file
32
doc/html/search/all_64.html
Normal file
|
@ -0,0 +1,32 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html><head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRResult" id="SR_domain">
|
||||
<div class="SREntry">
|
||||
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structCSPvariable.html#a66cf86ebf0fbbf8e571d7b585c9528a2" target="_parent">domain</a>
|
||||
<span class="SRScope">CSPvariable</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRResult" id="SR_dropconstraint">
|
||||
<div class="SREntry">
|
||||
<a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../classCSP.html#a0231b93bceae257f0e1c35041f8fe63f" target="_parent">dropConstraint</a>
|
||||
<span class="SRScope">CSP</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript"><!--
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
--></script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
26
doc/html/search/all_66.html
Normal file
26
doc/html/search/all_66.html
Normal file
|
@ -0,0 +1,26 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html><head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRResult" id="SR_fixed">
|
||||
<div class="SREntry">
|
||||
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structCSPvariable.html#a8e7a1cbd9af27e295508794f871dc599" target="_parent">fixed</a>
|
||||
<span class="SRScope">CSPvariable</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript"><!--
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
--></script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
32
doc/html/search/all_67.html
Normal file
32
doc/html/search/all_67.html
Normal file
|
@ -0,0 +1,32 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html><head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRResult" id="SR_getdomain">
|
||||
<div class="SREntry">
|
||||
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../classCSP.html#a2a9a7d8072613f6984795d5495373847" target="_parent">getDomain</a>
|
||||
<span class="SRScope">CSP</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRResult" id="SR_getsize">
|
||||
<div class="SREntry">
|
||||
<a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../classCSP.html#a91a0e89bc1882d39b88122bee392c5f3" target="_parent">getSize</a>
|
||||
<span class="SRScope">CSP</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript"><!--
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
--></script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
26
doc/html/search/all_68.html
Normal file
26
doc/html/search/all_68.html
Normal file
|
@ -0,0 +1,26 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html><head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRResult" id="SR_hasuniquesolution">
|
||||
<div class="SREntry">
|
||||
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../classCSP.html#ae96286c6c7dfb6fe077544e0d4af15f4" target="_parent">hasUniqueSolution</a>
|
||||
<span class="SRScope">CSP</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript"><!--
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
--></script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
38
doc/html/search/all_69.html
Normal file
38
doc/html/search/all_69.html
Normal file
|
@ -0,0 +1,38 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html><head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRResult" id="SR_index">
|
||||
<div class="SREntry">
|
||||
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structCSPvariable.html#a1fb7622b0576133aa9a2445da22fddac" target="_parent">index</a>
|
||||
<span class="SRScope">CSPvariable</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRResult" id="SR_issatisfiable">
|
||||
<div class="SREntry">
|
||||
<a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../classCSP.html#a7ef9eb91c38815c9d82182696a6bd5d3" target="_parent">isSatisfiable</a>
|
||||
<span class="SRScope">CSP</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRResult" id="SR_isset">
|
||||
<div class="SREntry">
|
||||
<a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../classCSP.html#a213dafc1aae7b1825371810a511eca4f" target="_parent">isSet</a>
|
||||
<span class="SRScope">CSP</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript"><!--
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
--></script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
26
doc/html/search/all_72.html
Normal file
26
doc/html/search/all_72.html
Normal file
|
@ -0,0 +1,26 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html><head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRResult" id="SR_refreshdomains">
|
||||
<div class="SREntry">
|
||||
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../classCSP.html#a466845256e638c5e258fd728b641359f" target="_parent">refreshDomains</a>
|
||||
<span class="SRScope">CSP</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript"><!--
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
--></script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
44
doc/html/search/all_73.html
Normal file
44
doc/html/search/all_73.html
Normal file
|
@ -0,0 +1,44 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html><head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRResult" id="SR_setconstraint">
|
||||
<div class="SREntry">
|
||||
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_setconstraint')">setConstraint</a>
|
||||
<div class="SRChildren">
|
||||
<a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../classCSP.html#a534a0d9bd10fb544f94196bf3c386657" target="_parent">CSP::setConstraint(bool(*c)(std::vector< CSPvariable< T > >))</a>
|
||||
<a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../classCSP.html#a457e1df05d4ec16be00118bda22fd882" target="_parent">CSP::setConstraint(std::vector< bool(*)(std::vector< CSPvariable< T > >) > c)</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRResult" id="SR_setdomain">
|
||||
<div class="SREntry">
|
||||
<a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_setdomain')">setDomain</a>
|
||||
<div class="SRChildren">
|
||||
<a id="Item1_c0" onkeydown="return searchResults.NavChild(event,1,0)" onkeypress="return searchResults.NavChild(event,1,0)" onkeyup="return searchResults.NavChild(event,1,0)" class="SRScope" href="../classCSP.html#a4017c17aac9d3e96d0e821ebbe09da7b" target="_parent">CSP::setDomain(size_t index, std::vector< T > domain)</a>
|
||||
<a id="Item1_c1" onkeydown="return searchResults.NavChild(event,1,1)" onkeypress="return searchResults.NavChild(event,1,1)" onkeyup="return searchResults.NavChild(event,1,1)" class="SRScope" href="../classCSP.html#a65518e67e33e31bff1b5f9aabdf80a01" target="_parent">CSP::setDomain(size_t index, T domain[], int size)</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRResult" id="SR_setvalue">
|
||||
<div class="SREntry">
|
||||
<a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../classCSP.html#ac25064c5b2d4e1020173b56913251ebd" target="_parent">setValue</a>
|
||||
<span class="SRScope">CSP</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript"><!--
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
--></script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
26
doc/html/search/all_75.html
Normal file
26
doc/html/search/all_75.html
Normal file
|
@ -0,0 +1,26 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html><head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRResult" id="SR_unsetvalue">
|
||||
<div class="SREntry">
|
||||
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../classCSP.html#a4c0cae125a610f519dc22eaec255a0ae" target="_parent">unsetValue</a>
|
||||
<span class="SRScope">CSP</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript"><!--
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
--></script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
29
doc/html/search/all_76.html
Normal file
29
doc/html/search/all_76.html
Normal file
|
@ -0,0 +1,29 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html><head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRResult" id="SR_value">
|
||||
<div class="SREntry">
|
||||
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_value')">value</a>
|
||||
<div class="SRChildren">
|
||||
<a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../structCSPvariable.html#acc2ff31b449351f04b1c3a2a096e584c" target="_parent">CSPvariable::value()</a>
|
||||
<a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../classCSP.html#aafa5e1a65d6c5d80780437d8d684f32a" target="_parent">CSP::value()</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript"><!--
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
--></script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
26
doc/html/search/all_77.html
Normal file
26
doc/html/search/all_77.html
Normal file
|
@ -0,0 +1,26 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html><head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRResult" id="SR_what">
|
||||
<div class="SREntry">
|
||||
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../classCSPexception.html#a7013e90a6c26ba4c15bc6fbc42be02ef" target="_parent">what</a>
|
||||
<span class="SRScope">CSPexception</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript"><!--
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
--></script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
40
doc/html/search/classes_63.html
Normal file
40
doc/html/search/classes_63.html
Normal file
|
@ -0,0 +1,40 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html><head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRResult" id="SR_csp">
|
||||
<div class="SREntry">
|
||||
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../classCSP.html" target="_parent">CSP</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRResult" id="SR_cspexception">
|
||||
<div class="SREntry">
|
||||
<a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../classCSPexception.html" target="_parent">CSPexception</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRResult" id="SR_cspvariable">
|
||||
<div class="SREntry">
|
||||
<a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../structCSPvariable.html" target="_parent">CSPvariable</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRResult" id="SR_cspvariable_3c_20tt_20_3e">
|
||||
<div class="SREntry">
|
||||
<a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../structCSPvariable.html" target="_parent">CSPvariable< TT ></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript"><!--
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
--></script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
BIN
doc/html/search/close.png
Normal file
BIN
doc/html/search/close.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 273 B |
32
doc/html/search/functions_61.html
Normal file
32
doc/html/search/functions_61.html
Normal file
|
@ -0,0 +1,32 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html><head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRResult" id="SR_appendconstraint">
|
||||
<div class="SREntry">
|
||||
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../classCSP.html#a8dc6aec6ca7e40d198e58b0ec14fee66" target="_parent">appendConstraint</a>
|
||||
<span class="SRScope">CSP</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRResult" id="SR_assignuniquedomains">
|
||||
<div class="SREntry">
|
||||
<a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../classCSP.html#ac74cb751589a58bf6f2815f6878d2213" target="_parent">assignUniqueDomains</a>
|
||||
<span class="SRScope">CSP</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript"><!--
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
--></script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
36
doc/html/search/functions_63.html
Normal file
36
doc/html/search/functions_63.html
Normal file
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html><head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRResult" id="SR_csp">
|
||||
<div class="SREntry">
|
||||
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_csp')">CSP</a>
|
||||
<div class="SRChildren">
|
||||
<a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../classCSP.html#a3a4c1cfab4f5c2376b5f9da588e73f5a" target="_parent">CSP::CSP()</a>
|
||||
<a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../classCSP.html#ad49548121582cc2d59e0d7f100092b75" target="_parent">CSP::CSP(int n, bool(*c)(std::vector< CSPvariable< T > >)=__default_constraint)</a>
|
||||
<a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../classCSP.html#a734bb08d8f45394a2acfc8822981a6d0" target="_parent">CSP::CSP(int n, T default_value, bool set_variables=false, bool(*c)(std::vector< CSPvariable< T > >)=__default_constraint)</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRResult" id="SR_cspexception">
|
||||
<div class="SREntry">
|
||||
<a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../classCSPexception.html#a810bcfbb11d2e35d7b95f1e2b11b408c" target="_parent">CSPexception</a>
|
||||
<span class="SRScope">CSPexception</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript"><!--
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
--></script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
26
doc/html/search/functions_64.html
Normal file
26
doc/html/search/functions_64.html
Normal file
|
@ -0,0 +1,26 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html><head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRResult" id="SR_dropconstraint">
|
||||
<div class="SREntry">
|
||||
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../classCSP.html#a0231b93bceae257f0e1c35041f8fe63f" target="_parent">dropConstraint</a>
|
||||
<span class="SRScope">CSP</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript"><!--
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
--></script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
32
doc/html/search/functions_67.html
Normal file
32
doc/html/search/functions_67.html
Normal file
|
@ -0,0 +1,32 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html><head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRResult" id="SR_getdomain">
|
||||
<div class="SREntry">
|
||||
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../classCSP.html#a2a9a7d8072613f6984795d5495373847" target="_parent">getDomain</a>
|
||||
<span class="SRScope">CSP</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRResult" id="SR_getsize">
|
||||
<div class="SREntry">
|
||||
<a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../classCSP.html#a91a0e89bc1882d39b88122bee392c5f3" target="_parent">getSize</a>
|
||||
<span class="SRScope">CSP</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript"><!--
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
--></script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
26
doc/html/search/functions_68.html
Normal file
26
doc/html/search/functions_68.html
Normal file
|
@ -0,0 +1,26 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html><head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRResult" id="SR_hasuniquesolution">
|
||||
<div class="SREntry">
|
||||
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../classCSP.html#ae96286c6c7dfb6fe077544e0d4af15f4" target="_parent">hasUniqueSolution</a>
|
||||
<span class="SRScope">CSP</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript"><!--
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
--></script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
32
doc/html/search/functions_69.html
Normal file
32
doc/html/search/functions_69.html
Normal file
|
@ -0,0 +1,32 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html><head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRResult" id="SR_issatisfiable">
|
||||
<div class="SREntry">
|
||||
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../classCSP.html#a7ef9eb91c38815c9d82182696a6bd5d3" target="_parent">isSatisfiable</a>
|
||||
<span class="SRScope">CSP</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRResult" id="SR_isset">
|
||||
<div class="SREntry">
|
||||
<a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../classCSP.html#a213dafc1aae7b1825371810a511eca4f" target="_parent">isSet</a>
|
||||
<span class="SRScope">CSP</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript"><!--
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
--></script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
26
doc/html/search/functions_72.html
Normal file
26
doc/html/search/functions_72.html
Normal file
|
@ -0,0 +1,26 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html><head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRResult" id="SR_refreshdomains">
|
||||
<div class="SREntry">
|
||||
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../classCSP.html#a466845256e638c5e258fd728b641359f" target="_parent">refreshDomains</a>
|
||||
<span class="SRScope">CSP</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript"><!--
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
--></script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
44
doc/html/search/functions_73.html
Normal file
44
doc/html/search/functions_73.html
Normal file
|
@ -0,0 +1,44 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html><head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRResult" id="SR_setconstraint">
|
||||
<div class="SREntry">
|
||||
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_setconstraint')">setConstraint</a>
|
||||
<div class="SRChildren">
|
||||
<a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../classCSP.html#a534a0d9bd10fb544f94196bf3c386657" target="_parent">CSP::setConstraint(bool(*c)(std::vector< CSPvariable< T > >))</a>
|
||||
<a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../classCSP.html#a457e1df05d4ec16be00118bda22fd882" target="_parent">CSP::setConstraint(std::vector< bool(*)(std::vector< CSPvariable< T > >) > c)</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRResult" id="SR_setdomain">
|
||||
<div class="SREntry">
|
||||
<a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_setdomain')">setDomain</a>
|
||||
<div class="SRChildren">
|
||||
<a id="Item1_c0" onkeydown="return searchResults.NavChild(event,1,0)" onkeypress="return searchResults.NavChild(event,1,0)" onkeyup="return searchResults.NavChild(event,1,0)" class="SRScope" href="../classCSP.html#a4017c17aac9d3e96d0e821ebbe09da7b" target="_parent">CSP::setDomain(size_t index, std::vector< T > domain)</a>
|
||||
<a id="Item1_c1" onkeydown="return searchResults.NavChild(event,1,1)" onkeypress="return searchResults.NavChild(event,1,1)" onkeyup="return searchResults.NavChild(event,1,1)" class="SRScope" href="../classCSP.html#a65518e67e33e31bff1b5f9aabdf80a01" target="_parent">CSP::setDomain(size_t index, T domain[], int size)</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRResult" id="SR_setvalue">
|
||||
<div class="SREntry">
|
||||
<a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../classCSP.html#ac25064c5b2d4e1020173b56913251ebd" target="_parent">setValue</a>
|
||||
<span class="SRScope">CSP</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript"><!--
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
--></script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
26
doc/html/search/functions_75.html
Normal file
26
doc/html/search/functions_75.html
Normal file
|
@ -0,0 +1,26 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html><head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRResult" id="SR_unsetvalue">
|
||||
<div class="SREntry">
|
||||
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../classCSP.html#a4c0cae125a610f519dc22eaec255a0ae" target="_parent">unsetValue</a>
|
||||
<span class="SRScope">CSP</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript"><!--
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
--></script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
26
doc/html/search/functions_76.html
Normal file
26
doc/html/search/functions_76.html
Normal file
|
@ -0,0 +1,26 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html><head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRResult" id="SR_value">
|
||||
<div class="SREntry">
|
||||
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../classCSP.html#aafa5e1a65d6c5d80780437d8d684f32a" target="_parent">value</a>
|
||||
<span class="SRScope">CSP</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript"><!--
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
--></script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
26
doc/html/search/functions_77.html
Normal file
26
doc/html/search/functions_77.html
Normal file
|
@ -0,0 +1,26 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html><head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRResult" id="SR_what">
|
||||
<div class="SREntry">
|
||||
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../classCSPexception.html#a7013e90a6c26ba4c15bc6fbc42be02ef" target="_parent">what</a>
|
||||
<span class="SRScope">CSPexception</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript"><!--
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
--></script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
12
doc/html/search/nomatches.html
Normal file
12
doc/html/search/nomatches.html
Normal file
|
@ -0,0 +1,12 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html><head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
200
doc/html/search/search.css
Normal file
200
doc/html/search/search.css
Normal file
|
@ -0,0 +1,200 @@
|
|||
/*---------------- Search Box */
|
||||
#FSearchBox {
|
||||
float: left;
|
||||
}
|
||||
#MSearchBox {
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
border: none;
|
||||
border: 1px solid #84B0C7;
|
||||
white-space: nowrap;
|
||||
-moz-border-radius: 8px;
|
||||
-webkit-border-top-left-radius: 8px;
|
||||
-webkit-border-top-right-radius: 8px;
|
||||
-webkit-border-bottom-left-radius: 8px;
|
||||
-webkit-border-bottom-right-radius: 8px;
|
||||
}
|
||||
#MSearchField {
|
||||
font: 9pt Arial, Verdana, sans-serif;
|
||||
color: #999999;
|
||||
background-color: #FFFFFF;
|
||||
font-style: normal;
|
||||
cursor: text;
|
||||
padding: 1px 1px;
|
||||
margin: 0px 6px 0px 0px;
|
||||
border: none;
|
||||
outline: none;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.MSearchBoxActive #MSearchField {
|
||||
color: #000000;
|
||||
}
|
||||
#MSearchSelect {
|
||||
float : none;
|
||||
display : inline;
|
||||
background : none;
|
||||
font: 9pt Verdana, sans-serif;
|
||||
border: none;
|
||||
margin: 0px 0px 0px 6px;
|
||||
vertical-align: middle;
|
||||
padding: 0px 0px;
|
||||
}
|
||||
|
||||
#MSearchClose {
|
||||
float : none;
|
||||
display : none;
|
||||
background : none;
|
||||
border: none;
|
||||
margin: 0px 4px 0px 0px;
|
||||
padding: 0px 0px;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
#MSearchCloseImg {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.MSearchBoxLeft {
|
||||
display: block;
|
||||
text-align: left;
|
||||
float: left;
|
||||
margin-left: 6px;
|
||||
}
|
||||
.MSearchBoxRight {
|
||||
display: block;
|
||||
float: right;
|
||||
text-align: right;
|
||||
margin-right: 6px;
|
||||
}
|
||||
.MSearchBoxSpacer {
|
||||
font-size: 0px;
|
||||
clear: both;
|
||||
}
|
||||
.MSearchBoxRow {
|
||||
font-size: 0px;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
/*---------------- Search filter selection */
|
||||
|
||||
#MSearchSelectWindow {
|
||||
display: none;
|
||||
position: absolute;
|
||||
left: 0; top: 0;
|
||||
border: 1px solid #A0A0A0;
|
||||
background-color: #FAFAFA;
|
||||
z-index: 1;
|
||||
padding-top: 4px;
|
||||
padding-bottom: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
-webkit-border-top-left-radius: 4px;
|
||||
-webkit-border-top-right-radius: 4px;
|
||||
-webkit-border-bottom-left-radius: 4px;
|
||||
-webkit-border-bottom-right-radius: 4px;
|
||||
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
.SelectItem {
|
||||
font: 8pt Arial, Verdana, sans-serif;
|
||||
padding-left: 2px;
|
||||
padding-right: 12px;
|
||||
border: 0px;
|
||||
}
|
||||
span.SelectionMark {
|
||||
margin-right: 4px;
|
||||
font-family: monospace;
|
||||
outline-style: none;
|
||||
text-decoration: none;
|
||||
}
|
||||
a.SelectItem {
|
||||
display: block;
|
||||
outline-style: none;
|
||||
color: #000000;
|
||||
text-decoration: none;
|
||||
padding-left: 6px;
|
||||
padding-right: 12px;
|
||||
}
|
||||
a.SelectItem:focus,
|
||||
a.SelectItem:active {
|
||||
color: #000000;
|
||||
outline-style: none;
|
||||
text-decoration: none;
|
||||
}
|
||||
a.SelectItem:hover {
|
||||
color: #FFFFFF;
|
||||
background-color: #2A50E4;
|
||||
outline-style: none;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
}
|
||||
|
||||
/*---------------- Search results window */
|
||||
|
||||
iframe#MSearchResults {
|
||||
width: 60ex;
|
||||
height: 15em;
|
||||
}
|
||||
#MSearchResultsWindow {
|
||||
display: none;
|
||||
position: absolute;
|
||||
left: 0; top: 0;
|
||||
border: 1px solid #000000;
|
||||
background-color: #EEF3F5;
|
||||
}
|
||||
|
||||
/* ----------------------------------- */
|
||||
|
||||
|
||||
#SRIndex {
|
||||
clear:both;
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
|
||||
.SREntry {
|
||||
font-size: 10pt;
|
||||
padding-left: 1ex;
|
||||
}
|
||||
.SRPage .SREntry {
|
||||
font-size: 8pt;
|
||||
padding: 1px 5px;
|
||||
}
|
||||
body.SRPage {
|
||||
margin: 5px 2px;
|
||||
}
|
||||
|
||||
.SRChildren {
|
||||
padding-left: 3ex; padding-bottom: .5em
|
||||
}
|
||||
.SRPage .SRChildren {
|
||||
display: none;
|
||||
}
|
||||
.SRSymbol {
|
||||
font-weight: bold; color: #153788;
|
||||
font-family: Arial, Verdana, sans-serif;
|
||||
text-decoration: none;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
a.SRScope {
|
||||
display: block;
|
||||
color: #153788;
|
||||
font-family: Arial, Verdana, sans-serif;
|
||||
text-decoration: none;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
a.SRSymbol:focus, a.SRSymbol:active,
|
||||
a.SRScope:focus, a.SRScope:active {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.SRPage .SRStatus {
|
||||
padding: 2px 5px;
|
||||
font-size: 8pt;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.SRResult {
|
||||
display: none;
|
||||
}
|
||||
|
732
doc/html/search/search.js
Normal file
732
doc/html/search/search.js
Normal file
|
@ -0,0 +1,732 @@
|
|||
// Search script generated by doxygen
|
||||
// Copyright (C) 2009 by Dimitri van Heesch.
|
||||
|
||||
// The code in this file is loosly based on main.js, part of Natural Docs,
|
||||
// which is Copyright (C) 2003-2008 Greg Valure
|
||||
// Natural Docs is licensed under the GPL.
|
||||
|
||||
var indexSectionsWithContent =
|
||||
{
|
||||
0: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101101111000000001101110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
1: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
2: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101100111000000001101110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
3: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101001000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
};
|
||||
|
||||
var indexSectionNames =
|
||||
{
|
||||
0: "all",
|
||||
1: "classes",
|
||||
2: "functions",
|
||||
3: "variables"
|
||||
};
|
||||
|
||||
function convertToId(search)
|
||||
{
|
||||
var result = '';
|
||||
for (i=0;i<search.length;i++)
|
||||
{
|
||||
var c = search.charAt(i);
|
||||
var cn = c.charCodeAt(0);
|
||||
if (c.match(/[a-z0-9]/))
|
||||
{
|
||||
result+=c;
|
||||
}
|
||||
else if (cn<16)
|
||||
{
|
||||
result+="_0"+cn.toString(16);
|
||||
}
|
||||
else
|
||||
{
|
||||
result+="_"+cn.toString(16);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function getXPos(item)
|
||||
{
|
||||
var x = 0;
|
||||
if (item.offsetWidth)
|
||||
{
|
||||
while (item && item!=document.body)
|
||||
{
|
||||
x += item.offsetLeft;
|
||||
item = item.offsetParent;
|
||||
}
|
||||
}
|
||||
return x;
|
||||
}
|
||||
|
||||
function getYPos(item)
|
||||
{
|
||||
var y = 0;
|
||||
if (item.offsetWidth)
|
||||
{
|
||||
while (item && item!=document.body)
|
||||
{
|
||||
y += item.offsetTop;
|
||||
item = item.offsetParent;
|
||||
}
|
||||
}
|
||||
return y;
|
||||
}
|
||||
|
||||
/* A class handling everything associated with the search panel.
|
||||
|
||||
Parameters:
|
||||
name - The name of the global variable that will be
|
||||
storing this instance. Is needed to be able to set timeouts.
|
||||
resultPath - path to use for external files
|
||||
*/
|
||||
function SearchBox(name, resultsPath, inFrame, label)
|
||||
{
|
||||
if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); }
|
||||
|
||||
// ---------- Instance variables
|
||||
this.name = name;
|
||||
this.resultsPath = resultsPath;
|
||||
this.keyTimeout = 0;
|
||||
this.keyTimeoutLength = 500;
|
||||
this.closeSelectionTimeout = 300;
|
||||
this.lastSearchValue = "";
|
||||
this.lastResultsPage = "";
|
||||
this.hideTimeout = 0;
|
||||
this.searchIndex = 0;
|
||||
this.searchActive = false;
|
||||
this.insideFrame = inFrame;
|
||||
this.searchLabel = label;
|
||||
|
||||
// ----------- DOM Elements
|
||||
|
||||
this.DOMSearchField = function()
|
||||
{ return document.getElementById("MSearchField"); }
|
||||
|
||||
this.DOMSearchSelect = function()
|
||||
{ return document.getElementById("MSearchSelect"); }
|
||||
|
||||
this.DOMSearchSelectWindow = function()
|
||||
{ return document.getElementById("MSearchSelectWindow"); }
|
||||
|
||||
this.DOMPopupSearchResults = function()
|
||||
{ return document.getElementById("MSearchResults"); }
|
||||
|
||||
this.DOMPopupSearchResultsWindow = function()
|
||||
{ return document.getElementById("MSearchResultsWindow"); }
|
||||
|
||||
this.DOMSearchClose = function()
|
||||
{ return document.getElementById("MSearchClose"); }
|
||||
|
||||
this.DOMSearchBox = function()
|
||||
{ return document.getElementById("MSearchBox"); }
|
||||
|
||||
// ------------ Event Handlers
|
||||
|
||||
// Called when focus is added or removed from the search field.
|
||||
this.OnSearchFieldFocus = function(isActive)
|
||||
{
|
||||
this.Activate(isActive);
|
||||
}
|
||||
|
||||
this.OnSearchSelectShow = function()
|
||||
{
|
||||
var searchSelectWindow = this.DOMSearchSelectWindow();
|
||||
var searchField = this.DOMSearchSelect();
|
||||
|
||||
if (this.insideFrame)
|
||||
{
|
||||
var left = getXPos(searchField);
|
||||
var top = getYPos(searchField);
|
||||
left += searchField.offsetWidth + 6;
|
||||
top += searchField.offsetHeight;
|
||||
|
||||
// show search selection popup
|
||||
searchSelectWindow.style.display='block';
|
||||
left -= searchSelectWindow.offsetWidth;
|
||||
searchSelectWindow.style.left = left + 'px';
|
||||
searchSelectWindow.style.top = top + 'px';
|
||||
}
|
||||
else
|
||||
{
|
||||
var left = getXPos(searchField);
|
||||
var top = getYPos(searchField);
|
||||
top += searchField.offsetHeight;
|
||||
|
||||
// show search selection popup
|
||||
searchSelectWindow.style.display='block';
|
||||
searchSelectWindow.style.left = left + 'px';
|
||||
searchSelectWindow.style.top = top + 'px';
|
||||
}
|
||||
|
||||
// stop selection hide timer
|
||||
if (this.hideTimeout)
|
||||
{
|
||||
clearTimeout(this.hideTimeout);
|
||||
this.hideTimeout=0;
|
||||
}
|
||||
return false; // to avoid "image drag" default event
|
||||
}
|
||||
|
||||
this.OnSearchSelectHide = function()
|
||||
{
|
||||
this.hideTimeout = setTimeout(this.name +".CloseSelectionWindow()",
|
||||
this.closeSelectionTimeout);
|
||||
}
|
||||
|
||||
// Called when the content of the search field is changed.
|
||||
this.OnSearchFieldChange = function(evt)
|
||||
{
|
||||
if (this.keyTimeout) // kill running timer
|
||||
{
|
||||
clearTimeout(this.keyTimeout);
|
||||
this.keyTimeout = 0;
|
||||
}
|
||||
|
||||
var e = (evt) ? evt : window.event; // for IE
|
||||
if (e.keyCode==40 || e.keyCode==13)
|
||||
{
|
||||
if (e.shiftKey==1)
|
||||
{
|
||||
this.OnSearchSelectShow();
|
||||
var win=this.DOMSearchSelectWindow();
|
||||
for (i=0;i<win.childNodes.length;i++)
|
||||
{
|
||||
var child = win.childNodes[i]; // get span within a
|
||||
if (child.className=='SelectItem')
|
||||
{
|
||||
child.focus();
|
||||
return;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
else if (window.frames.MSearchResults.searchResults)
|
||||
{
|
||||
var elem = window.frames.MSearchResults.searchResults.NavNext(0);
|
||||
if (elem) elem.focus();
|
||||
}
|
||||
}
|
||||
else if (e.keyCode==27) // Escape out of the search field
|
||||
{
|
||||
this.DOMSearchField().blur();
|
||||
this.DOMPopupSearchResultsWindow().style.display = 'none';
|
||||
this.DOMSearchClose().style.display = 'none';
|
||||
this.lastSearchValue = '';
|
||||
this.Activate(false);
|
||||
return;
|
||||
}
|
||||
|
||||
// strip whitespaces
|
||||
var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
|
||||
|
||||
if (searchValue != this.lastSearchValue) // search value has changed
|
||||
{
|
||||
if (searchValue != "") // non-empty search
|
||||
{
|
||||
// set timer for search update
|
||||
this.keyTimeout = setTimeout(this.name + '.Search()',
|
||||
this.keyTimeoutLength);
|
||||
}
|
||||
else // empty search field
|
||||
{
|
||||
this.DOMPopupSearchResultsWindow().style.display = 'none';
|
||||
this.DOMSearchClose().style.display = 'none';
|
||||
this.lastSearchValue = '';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.SelectItemCount = function(id)
|
||||
{
|
||||
var count=0;
|
||||
var win=this.DOMSearchSelectWindow();
|
||||
for (i=0;i<win.childNodes.length;i++)
|
||||
{
|
||||
var child = win.childNodes[i]; // get span within a
|
||||
if (child.className=='SelectItem')
|
||||
{
|
||||
count++;
|
||||
}
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
this.SelectItemSet = function(id)
|
||||
{
|
||||
var i,j=0;
|
||||
var win=this.DOMSearchSelectWindow();
|
||||
for (i=0;i<win.childNodes.length;i++)
|
||||
{
|
||||
var child = win.childNodes[i]; // get span within a
|
||||
if (child.className=='SelectItem')
|
||||
{
|
||||
var node = child.firstChild;
|
||||
if (j==id)
|
||||
{
|
||||
node.innerHTML='•';
|
||||
}
|
||||
else
|
||||
{
|
||||
node.innerHTML=' ';
|
||||
}
|
||||
j++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Called when an search filter selection is made.
|
||||
// set item with index id as the active item
|
||||
this.OnSelectItem = function(id)
|
||||
{
|
||||
this.searchIndex = id;
|
||||
this.SelectItemSet(id);
|
||||
var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
|
||||
if (searchValue!="" && this.searchActive) // something was found -> do a search
|
||||
{
|
||||
this.Search();
|
||||
}
|
||||
}
|
||||
|
||||
this.OnSearchSelectKey = function(evt)
|
||||
{
|
||||
var e = (evt) ? evt : window.event; // for IE
|
||||
if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) // Down
|
||||
{
|
||||
this.searchIndex++;
|
||||
this.OnSelectItem(this.searchIndex);
|
||||
}
|
||||
else if (e.keyCode==38 && this.searchIndex>0) // Up
|
||||
{
|
||||
this.searchIndex--;
|
||||
this.OnSelectItem(this.searchIndex);
|
||||
}
|
||||
else if (e.keyCode==13 || e.keyCode==27)
|
||||
{
|
||||
this.OnSelectItem(this.searchIndex);
|
||||
this.CloseSelectionWindow();
|
||||
this.DOMSearchField().focus();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// --------- Actions
|
||||
|
||||
// Closes the results window.
|
||||
this.CloseResultsWindow = function()
|
||||
{
|
||||
this.DOMPopupSearchResultsWindow().style.display = 'none';
|
||||
this.DOMSearchClose().style.display = 'none';
|
||||
this.Activate(false);
|
||||
}
|
||||
|
||||
this.CloseSelectionWindow = function()
|
||||
{
|
||||
this.DOMSearchSelectWindow().style.display = 'none';
|
||||
}
|
||||
|
||||
// Performs a search.
|
||||
this.Search = function()
|
||||
{
|
||||
this.keyTimeout = 0;
|
||||
|
||||
// strip leading whitespace
|
||||
var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
|
||||
|
||||
var code = searchValue.toLowerCase().charCodeAt(0);
|
||||
var hexCode;
|
||||
if (code<16)
|
||||
{
|
||||
hexCode="0"+code.toString(16);
|
||||
}
|
||||
else
|
||||
{
|
||||
hexCode=code.toString(16);
|
||||
}
|
||||
|
||||
var resultsPage;
|
||||
var resultsPageWithSearch;
|
||||
var hasResultsPage;
|
||||
|
||||
if (indexSectionsWithContent[this.searchIndex].charAt(code) == '1')
|
||||
{
|
||||
resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html';
|
||||
resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
|
||||
hasResultsPage = true;
|
||||
}
|
||||
else // nothing available for this search term
|
||||
{
|
||||
resultsPage = this.resultsPath + '/nomatches.html';
|
||||
resultsPageWithSearch = resultsPage;
|
||||
hasResultsPage = false;
|
||||
}
|
||||
|
||||
window.frames.MSearchResults.location.href = resultsPageWithSearch;
|
||||
var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
|
||||
|
||||
if (domPopupSearchResultsWindow.style.display!='block')
|
||||
{
|
||||
var domSearchBox = this.DOMSearchBox();
|
||||
this.DOMSearchClose().style.display = 'inline';
|
||||
if (this.insideFrame)
|
||||
{
|
||||
var domPopupSearchResults = this.DOMPopupSearchResults();
|
||||
domPopupSearchResultsWindow.style.position = 'relative';
|
||||
domPopupSearchResultsWindow.style.display = 'block';
|
||||
var width = document.body.clientWidth - 8; // the -8 is for IE :-(
|
||||
domPopupSearchResultsWindow.style.width = width + 'px';
|
||||
domPopupSearchResults.style.width = width + 'px';
|
||||
}
|
||||
else
|
||||
{
|
||||
var domPopupSearchResults = this.DOMPopupSearchResults();
|
||||
var left = getXPos(domSearchBox) + domSearchBox.offsetWidth;
|
||||
var top = getYPos(domSearchBox) + domSearchBox.offsetHeight + 1;
|
||||
domPopupSearchResultsWindow.style.display = 'block';
|
||||
left -= domPopupSearchResults.offsetWidth;
|
||||
domPopupSearchResultsWindow.style.top = top + 'px';
|
||||
domPopupSearchResultsWindow.style.left = left + 'px';
|
||||
}
|
||||
}
|
||||
|
||||
this.lastSearchValue = searchValue;
|
||||
this.lastResultsPage = resultsPage;
|
||||
}
|
||||
|
||||
// -------- Activation Functions
|
||||
|
||||
// Activates or deactivates the search panel, resetting things to
|
||||
// their default values if necessary.
|
||||
this.Activate = function(isActive)
|
||||
{
|
||||
if (isActive || // open it
|
||||
this.DOMPopupSearchResultsWindow().style.display == 'block'
|
||||
)
|
||||
{
|
||||
this.DOMSearchBox().className = 'MSearchBoxActive';
|
||||
|
||||
var searchField = this.DOMSearchField();
|
||||
|
||||
if (searchField.value == this.searchLabel) // clear "Search" term upon entry
|
||||
{
|
||||
searchField.value = '';
|
||||
this.searchActive = true;
|
||||
}
|
||||
}
|
||||
else if (!isActive) // directly remove the panel
|
||||
{
|
||||
this.DOMSearchBox().className = 'MSearchBoxInactive';
|
||||
this.DOMSearchField().value = this.searchLabel;
|
||||
this.searchActive = false;
|
||||
this.lastSearchValue = ''
|
||||
this.lastResultsPage = '';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
// The class that handles everything on the search results page.
|
||||
function SearchResults(name)
|
||||
{
|
||||
// The number of matches from the last run of <Search()>.
|
||||
this.lastMatchCount = 0;
|
||||
this.lastKey = 0;
|
||||
this.repeatOn = false;
|
||||
|
||||
// Toggles the visibility of the passed element ID.
|
||||
this.FindChildElement = function(id)
|
||||
{
|
||||
var parentElement = document.getElementById(id);
|
||||
var element = parentElement.firstChild;
|
||||
|
||||
while (element && element!=parentElement)
|
||||
{
|
||||
if (element.nodeName == 'DIV' && element.className == 'SRChildren')
|
||||
{
|
||||
return element;
|
||||
}
|
||||
|
||||
if (element.nodeName == 'DIV' && element.hasChildNodes())
|
||||
{
|
||||
element = element.firstChild;
|
||||
}
|
||||
else if (element.nextSibling)
|
||||
{
|
||||
element = element.nextSibling;
|
||||
}
|
||||
else
|
||||
{
|
||||
do
|
||||
{
|
||||
element = element.parentNode;
|
||||
}
|
||||
while (element && element!=parentElement && !element.nextSibling);
|
||||
|
||||
if (element && element!=parentElement)
|
||||
{
|
||||
element = element.nextSibling;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.Toggle = function(id)
|
||||
{
|
||||
var element = this.FindChildElement(id);
|
||||
if (element)
|
||||
{
|
||||
if (element.style.display == 'block')
|
||||
{
|
||||
element.style.display = 'none';
|
||||
}
|
||||
else
|
||||
{
|
||||
element.style.display = 'block';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Searches for the passed string. If there is no parameter,
|
||||
// it takes it from the URL query.
|
||||
//
|
||||
// Always returns true, since other documents may try to call it
|
||||
// and that may or may not be possible.
|
||||
this.Search = function(search)
|
||||
{
|
||||
if (!search) // get search word from URL
|
||||
{
|
||||
search = window.location.search;
|
||||
search = search.substring(1); // Remove the leading '?'
|
||||
search = unescape(search);
|
||||
}
|
||||
|
||||
search = search.replace(/^ +/, ""); // strip leading spaces
|
||||
search = search.replace(/ +$/, ""); // strip trailing spaces
|
||||
search = search.toLowerCase();
|
||||
search = convertToId(search);
|
||||
|
||||
var resultRows = document.getElementsByTagName("div");
|
||||
var matches = 0;
|
||||
|
||||
var i = 0;
|
||||
while (i < resultRows.length)
|
||||
{
|
||||
var row = resultRows.item(i);
|
||||
if (row.className == "SRResult")
|
||||
{
|
||||
var rowMatchName = row.id.toLowerCase();
|
||||
rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_'
|
||||
|
||||
if (search.length<=rowMatchName.length &&
|
||||
rowMatchName.substr(0, search.length)==search)
|
||||
{
|
||||
row.style.display = 'block';
|
||||
matches++;
|
||||
}
|
||||
else
|
||||
{
|
||||
row.style.display = 'none';
|
||||
}
|
||||
}
|
||||
i++;
|
||||
}
|
||||
document.getElementById("Searching").style.display='none';
|
||||
if (matches == 0) // no results
|
||||
{
|
||||
document.getElementById("NoMatches").style.display='block';
|
||||
}
|
||||
else // at least one result
|
||||
{
|
||||
document.getElementById("NoMatches").style.display='none';
|
||||
}
|
||||
this.lastMatchCount = matches;
|
||||
return true;
|
||||
}
|
||||
|
||||
// return the first item with index index or higher that is visible
|
||||
this.NavNext = function(index)
|
||||
{
|
||||
var focusItem;
|
||||
while (1)
|
||||
{
|
||||
var focusName = 'Item'+index;
|
||||
focusItem = document.getElementById(focusName);
|
||||
if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
|
||||
{
|
||||
break;
|
||||
}
|
||||
else if (!focusItem) // last element
|
||||
{
|
||||
break;
|
||||
}
|
||||
focusItem=null;
|
||||
index++;
|
||||
}
|
||||
return focusItem;
|
||||
}
|
||||
|
||||
this.NavPrev = function(index)
|
||||
{
|
||||
var focusItem;
|
||||
while (1)
|
||||
{
|
||||
var focusName = 'Item'+index;
|
||||
focusItem = document.getElementById(focusName);
|
||||
if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
|
||||
{
|
||||
break;
|
||||
}
|
||||
else if (!focusItem) // last element
|
||||
{
|
||||
break;
|
||||
}
|
||||
focusItem=null;
|
||||
index--;
|
||||
}
|
||||
return focusItem;
|
||||
}
|
||||
|
||||
this.ProcessKeys = function(e)
|
||||
{
|
||||
if (e.type == "keydown")
|
||||
{
|
||||
this.repeatOn = false;
|
||||
this.lastKey = e.keyCode;
|
||||
}
|
||||
else if (e.type == "keypress")
|
||||
{
|
||||
if (!this.repeatOn)
|
||||
{
|
||||
if (this.lastKey) this.repeatOn = true;
|
||||
return false; // ignore first keypress after keydown
|
||||
}
|
||||
}
|
||||
else if (e.type == "keyup")
|
||||
{
|
||||
this.lastKey = 0;
|
||||
this.repeatOn = false;
|
||||
}
|
||||
return this.lastKey!=0;
|
||||
}
|
||||
|
||||
this.Nav = function(evt,itemIndex)
|
||||
{
|
||||
var e = (evt) ? evt : window.event; // for IE
|
||||
if (e.keyCode==13) return true;
|
||||
if (!this.ProcessKeys(e)) return false;
|
||||
|
||||
if (this.lastKey==38) // Up
|
||||
{
|
||||
var newIndex = itemIndex-1;
|
||||
var focusItem = this.NavPrev(newIndex);
|
||||
if (focusItem)
|
||||
{
|
||||
var child = this.FindChildElement(focusItem.parentNode.parentNode.id);
|
||||
if (child && child.style.display == 'block') // children visible
|
||||
{
|
||||
var n=0;
|
||||
var tmpElem;
|
||||
while (1) // search for last child
|
||||
{
|
||||
tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
|
||||
if (tmpElem)
|
||||
{
|
||||
focusItem = tmpElem;
|
||||
}
|
||||
else // found it!
|
||||
{
|
||||
break;
|
||||
}
|
||||
n++;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (focusItem)
|
||||
{
|
||||
focusItem.focus();
|
||||
}
|
||||
else // return focus to search field
|
||||
{
|
||||
parent.document.getElementById("MSearchField").focus();
|
||||
}
|
||||
}
|
||||
else if (this.lastKey==40) // Down
|
||||
{
|
||||
var newIndex = itemIndex+1;
|
||||
var focusItem;
|
||||
var item = document.getElementById('Item'+itemIndex);
|
||||
var elem = this.FindChildElement(item.parentNode.parentNode.id);
|
||||
if (elem && elem.style.display == 'block') // children visible
|
||||
{
|
||||
focusItem = document.getElementById('Item'+itemIndex+'_c0');
|
||||
}
|
||||
if (!focusItem) focusItem = this.NavNext(newIndex);
|
||||
if (focusItem) focusItem.focus();
|
||||
}
|
||||
else if (this.lastKey==39) // Right
|
||||
{
|
||||
var item = document.getElementById('Item'+itemIndex);
|
||||
var elem = this.FindChildElement(item.parentNode.parentNode.id);
|
||||
if (elem) elem.style.display = 'block';
|
||||
}
|
||||
else if (this.lastKey==37) // Left
|
||||
{
|
||||
var item = document.getElementById('Item'+itemIndex);
|
||||
var elem = this.FindChildElement(item.parentNode.parentNode.id);
|
||||
if (elem) elem.style.display = 'none';
|
||||
}
|
||||
else if (this.lastKey==27) // Escape
|
||||
{
|
||||
parent.searchBox.CloseResultsWindow();
|
||||
parent.document.getElementById("MSearchField").focus();
|
||||
}
|
||||
else if (this.lastKey==13) // Enter
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
this.NavChild = function(evt,itemIndex,childIndex)
|
||||
{
|
||||
var e = (evt) ? evt : window.event; // for IE
|
||||
if (e.keyCode==13) return true;
|
||||
if (!this.ProcessKeys(e)) return false;
|
||||
|
||||
if (this.lastKey==38) // Up
|
||||
{
|
||||
if (childIndex>0)
|
||||
{
|
||||
var newIndex = childIndex-1;
|
||||
document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();
|
||||
}
|
||||
else // already at first child, jump to parent
|
||||
{
|
||||
document.getElementById('Item'+itemIndex).focus();
|
||||
}
|
||||
}
|
||||
else if (this.lastKey==40) // Down
|
||||
{
|
||||
var newIndex = childIndex+1;
|
||||
var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);
|
||||
if (!elem) // last child, jump to parent next parent
|
||||
{
|
||||
elem = this.NavNext(itemIndex+1);
|
||||
}
|
||||
if (elem)
|
||||
{
|
||||
elem.focus();
|
||||
}
|
||||
}
|
||||
else if (this.lastKey==27) // Escape
|
||||
{
|
||||
parent.searchBox.CloseResultsWindow();
|
||||
parent.document.getElementById("MSearchField").focus();
|
||||
}
|
||||
else if (this.lastKey==13) // Enter
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
BIN
doc/html/search/search.png
Normal file
BIN
doc/html/search/search.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 527 B |
26
doc/html/search/variables_64.html
Normal file
26
doc/html/search/variables_64.html
Normal file
|
@ -0,0 +1,26 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html><head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRResult" id="SR_domain">
|
||||
<div class="SREntry">
|
||||
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structCSPvariable.html#a66cf86ebf0fbbf8e571d7b585c9528a2" target="_parent">domain</a>
|
||||
<span class="SRScope">CSPvariable</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript"><!--
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
--></script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
26
doc/html/search/variables_66.html
Normal file
26
doc/html/search/variables_66.html
Normal file
|
@ -0,0 +1,26 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html><head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRResult" id="SR_fixed">
|
||||
<div class="SREntry">
|
||||
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structCSPvariable.html#a8e7a1cbd9af27e295508794f871dc599" target="_parent">fixed</a>
|
||||
<span class="SRScope">CSPvariable</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript"><!--
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
--></script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
26
doc/html/search/variables_69.html
Normal file
26
doc/html/search/variables_69.html
Normal file
|
@ -0,0 +1,26 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html><head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRResult" id="SR_index">
|
||||
<div class="SREntry">
|
||||
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structCSPvariable.html#a1fb7622b0576133aa9a2445da22fddac" target="_parent">index</a>
|
||||
<span class="SRScope">CSPvariable</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript"><!--
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
--></script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
26
doc/html/search/variables_76.html
Normal file
26
doc/html/search/variables_76.html
Normal file
|
@ -0,0 +1,26 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html><head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div class="SRResult" id="SR_value">
|
||||
<div class="SREntry">
|
||||
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structCSPvariable.html#acc2ff31b449351f04b1c3a2a096e584c" target="_parent">value</a>
|
||||
<span class="SRScope">CSPvariable</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript"><!--
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
--></script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
70
doc/html/structCSPvariable-members.html
Normal file
70
doc/html/structCSPvariable-members.html
Normal file
|
@ -0,0 +1,70 @@
|
|||
<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>libCSP++: Member List</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javaScript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body onload='searchBox.OnSelectItem(0);'>
|
||||
<!-- Generated by Doxygen 1.6.3 -->
|
||||
<script type="text/javascript"><!--
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
--></script>
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
<li>
|
||||
<div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<img id="MSearchSelect" src="search/search.png"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
alt=""/>
|
||||
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>CSPvariable< T > Member List</h1>This is the complete list of members for <a class="el" href="structCSPvariable.html">CSPvariable< T ></a>, including all inherited members.<table>
|
||||
<tr class="memlist"><td><a class="el" href="structCSPvariable.html#a66cf86ebf0fbbf8e571d7b585c9528a2">domain</a></td><td><a class="el" href="structCSPvariable.html">CSPvariable< T ></a></td><td></td></tr>
|
||||
<tr class="memlist"><td><a class="el" href="structCSPvariable.html#a8e7a1cbd9af27e295508794f871dc599">fixed</a></td><td><a class="el" href="structCSPvariable.html">CSPvariable< T ></a></td><td></td></tr>
|
||||
<tr class="memlist"><td><a class="el" href="structCSPvariable.html#a1fb7622b0576133aa9a2445da22fddac">index</a></td><td><a class="el" href="structCSPvariable.html">CSPvariable< T ></a></td><td></td></tr>
|
||||
<tr class="memlist"><td><a class="el" href="structCSPvariable.html#acc2ff31b449351f04b1c3a2a096e584c">value</a></td><td><a class="el" href="structCSPvariable.html">CSPvariable< T ></a></td><td></td></tr>
|
||||
</table></div>
|
||||
<!--- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a></div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 24 01:58:02 2010 for libCSP++ by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
|
||||
</body>
|
||||
</html>
|
95
doc/html/structCSPvariable.html
Normal file
95
doc/html/structCSPvariable.html
Normal file
|
@ -0,0 +1,95 @@
|
|||
<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>libCSP++: CSPvariable< T > Struct Template Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javaScript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body onload='searchBox.OnSelectItem(0);'>
|
||||
<!-- Generated by Doxygen 1.6.3 -->
|
||||
<script type="text/javascript"><!--
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
--></script>
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
<li>
|
||||
<div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<img id="MSearchSelect" src="search/search.png"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
alt=""/>
|
||||
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>CSPvariable< T > Struct Template Reference</h1><!-- doxytag: class="CSPvariable" -->
|
||||
<p>Struct used for describing a variable in the <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a>.
|
||||
<a href="#_details">More...</a></p>
|
||||
|
||||
<p><code>#include <<a class="el" href="csp_09_09_8h_source.html">csp++.h</a>></code></p>
|
||||
|
||||
<p><a href="structCSPvariable-members.html">List of all members.</a></p>
|
||||
<table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Public Attributes</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1fb7622b0576133aa9a2445da22fddac"></a><!-- doxytag: member="CSPvariable::index" ref="a1fb7622b0576133aa9a2445da22fddac" args="" -->
|
||||
int </td><td class="memItemRight" valign="bottom"><a class="el" href="structCSPvariable.html#a1fb7622b0576133aa9a2445da22fddac">index</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Index of the variable. <br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8e7a1cbd9af27e295508794f871dc599"></a><!-- doxytag: member="CSPvariable::fixed" ref="a8e7a1cbd9af27e295508794f871dc599" args="" -->
|
||||
bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structCSPvariable.html#a8e7a1cbd9af27e295508794f871dc599">fixed</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">If the value of the variable is set explicitely, this value is true. <br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acc2ff31b449351f04b1c3a2a096e584c"></a><!-- doxytag: member="CSPvariable::value" ref="acc2ff31b449351f04b1c3a2a096e584c" args="" -->
|
||||
T </td><td class="memItemRight" valign="bottom"><a class="el" href="structCSPvariable.html#acc2ff31b449351f04b1c3a2a096e584c">value</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">The value of the variable. <br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a66cf86ebf0fbbf8e571d7b585c9528a2"></a><!-- doxytag: member="CSPvariable::domain" ref="a66cf86ebf0fbbf8e571d7b585c9528a2" args="" -->
|
||||
std::vector< T > </td><td class="memItemRight" valign="bottom"><a class="el" href="structCSPvariable.html#a66cf86ebf0fbbf8e571d7b585c9528a2">domain</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Domain of the variable, declared as a vector. <br/></td></tr>
|
||||
</table>
|
||||
<hr/><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<h3>template<class T><br/>
|
||||
struct CSPvariable< T ></h3>
|
||||
|
||||
<p>Struct used for describing a variable in the <a class="el" href="classCSP.html" title="Main class for managing a CSP.">CSP</a>. </p>
|
||||
<hr/>The documentation for this struct was generated from the following file:<ul>
|
||||
<li><a class="el" href="csp_09_09-def_8h_source.html">csp++-def.h</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!--- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a></div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon May 24 01:58:02 2010 for libCSP++ by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
|
||||
</body>
|
||||
</html>
|
BIN
doc/html/tab_b.gif
Normal file
BIN
doc/html/tab_b.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 35 B |
BIN
doc/html/tab_l.gif
Normal file
BIN
doc/html/tab_l.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 706 B |
BIN
doc/html/tab_r.gif
Normal file
BIN
doc/html/tab_r.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.5 KiB |
105
doc/html/tabs.css
Normal file
105
doc/html/tabs.css
Normal file
|
@ -0,0 +1,105 @@
|
|||
/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */
|
||||
|
||||
DIV.tabs
|
||||
{
|
||||
float : left;
|
||||
width : 100%;
|
||||
background : url("tab_b.gif") repeat-x bottom;
|
||||
margin-bottom : 4px;
|
||||
}
|
||||
|
||||
DIV.tabs UL
|
||||
{
|
||||
margin : 0px;
|
||||
padding-left : 10px;
|
||||
list-style : none;
|
||||
}
|
||||
|
||||
DIV.tabs LI, DIV.tabs FORM
|
||||
{
|
||||
display : inline;
|
||||
margin : 0px;
|
||||
padding : 0px;
|
||||
}
|
||||
|
||||
DIV.tabs FORM
|
||||
{
|
||||
float : right;
|
||||
}
|
||||
|
||||
DIV.tabs A
|
||||
{
|
||||
float : left;
|
||||
background : url("tab_r.gif") no-repeat right top;
|
||||
border-bottom : 1px solid #84B0C7;
|
||||
font-size : 80%;
|
||||
font-weight : bold;
|
||||
text-decoration : none;
|
||||
}
|
||||
|
||||
DIV.tabs A:hover
|
||||
{
|
||||
background-position: 100% -150px;
|
||||
}
|
||||
|
||||
DIV.tabs A:link, DIV.tabs A:visited,
|
||||
DIV.tabs A:active, DIV.tabs A:hover
|
||||
{
|
||||
color: #1A419D;
|
||||
}
|
||||
|
||||
DIV.tabs SPAN
|
||||
{
|
||||
float : left;
|
||||
display : block;
|
||||
background : url("tab_l.gif") no-repeat left top;
|
||||
padding : 5px 9px;
|
||||
white-space : nowrap;
|
||||
}
|
||||
|
||||
DIV.tabs #MSearchBox
|
||||
{
|
||||
float : right;
|
||||
display : inline;
|
||||
font-size : 1em;
|
||||
}
|
||||
|
||||
DIV.tabs TD
|
||||
{
|
||||
font-size : 80%;
|
||||
font-weight : bold;
|
||||
text-decoration : none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Commented Backslash Hack hides rule from IE5-Mac \*/
|
||||
DIV.tabs SPAN {float : none;}
|
||||
/* End IE5-Mac hack */
|
||||
|
||||
DIV.tabs A:hover SPAN
|
||||
{
|
||||
background-position: 0% -150px;
|
||||
}
|
||||
|
||||
DIV.tabs LI.current A
|
||||
{
|
||||
background-position: 100% -150px;
|
||||
border-width : 0px;
|
||||
}
|
||||
|
||||
DIV.tabs LI.current SPAN
|
||||
{
|
||||
background-position: 0% -150px;
|
||||
padding-bottom : 6px;
|
||||
}
|
||||
|
||||
DIV.navpath
|
||||
{
|
||||
background : none;
|
||||
border : none;
|
||||
border-bottom : 1px solid #84B0C7;
|
||||
text-align : center;
|
||||
margin : 2px;
|
||||
padding : 2px;
|
||||
}
|
19
doc/latex/Makefile
Normal file
19
doc/latex/Makefile
Normal file
|
@ -0,0 +1,19 @@
|
|||
all: clean refman.pdf
|
||||
|
||||
pdf: refman.pdf
|
||||
|
||||
refman.pdf: refman.tex
|
||||
pdflatex refman.tex
|
||||
makeindex refman.idx
|
||||
pdflatex refman.tex
|
||||
latex_count=5 ; \
|
||||
while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\
|
||||
do \
|
||||
echo "Rerunning latex...." ;\
|
||||
pdflatex refman.tex ;\
|
||||
latex_count=`expr $$latex_count - 1` ;\
|
||||
done
|
||||
|
||||
|
||||
clean:
|
||||
rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out refman.pdf
|
6
doc/latex/annotated.tex
Normal file
6
doc/latex/annotated.tex
Normal file
|
@ -0,0 +1,6 @@
|
|||
\section{Class List}
|
||||
Here are the classes, structs, unions and interfaces with brief descriptions:\begin{DoxyCompactList}
|
||||
\item\contentsline{section}{\hyperlink{classCSP}{CSP$<$ T $>$} (Main class for managing a \hyperlink{classCSP}{CSP} )}{\pageref{classCSP}}{}
|
||||
\item\contentsline{section}{\hyperlink{classCSPexception}{CSPexception} (Class for managing exception in \hyperlink{classCSP}{CSP} )}{\pageref{classCSPexception}}{}
|
||||
\item\contentsline{section}{\hyperlink{structCSPvariable}{CSPvariable$<$ T $>$} (Struct used for describing a variable in the \hyperlink{classCSP}{CSP} )}{\pageref{structCSPvariable}}{}
|
||||
\end{DoxyCompactList}
|
286
doc/latex/classCSP.tex
Normal file
286
doc/latex/classCSP.tex
Normal file
|
@ -0,0 +1,286 @@
|
|||
\hypertarget{classCSP}{
|
||||
\section{CSP$<$ T $>$ Class Template Reference}
|
||||
\label{classCSP}\index{CSP@{CSP}}
|
||||
}
|
||||
|
||||
|
||||
Main class for managing a \hyperlink{classCSP}{CSP}.
|
||||
|
||||
|
||||
|
||||
|
||||
{\ttfamily \#include $<$csp++.h$>$}
|
||||
|
||||
\subsection*{Classes}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
struct {\bfseries arc}
|
||||
\end{DoxyCompactItemize}
|
||||
\subsection*{Public Member Functions}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
\hypertarget{classCSP_a3a4c1cfab4f5c2376b5f9da588e73f5a}{
|
||||
\hyperlink{classCSP_a3a4c1cfab4f5c2376b5f9da588e73f5a}{CSP} ()}
|
||||
\label{classCSP_a3a4c1cfab4f5c2376b5f9da588e73f5a}
|
||||
|
||||
\begin{DoxyCompactList}\small\item\em Empty constructor -\/ just do nothing, used for declaring an object and initialize it later. \item\end{DoxyCompactList}\item
|
||||
\hyperlink{classCSP_ad49548121582cc2d59e0d7f100092b75}{CSP} (int n, bool($\ast$c)(std::vector$<$ \hyperlink{structCSPvariable}{CSPvariable}$<$ T $>$ $>$)=\_\-\_\-default\_\-constraint)
|
||||
\begin{DoxyCompactList}\small\item\em Class constructor. \item\end{DoxyCompactList}\item
|
||||
\hyperlink{classCSP_a734bb08d8f45394a2acfc8822981a6d0}{CSP} (int n, T default\_\-value, bool set\_\-variables=false, bool($\ast$c)(std::vector$<$ \hyperlink{structCSPvariable}{CSPvariable}$<$ T $>$ $>$)=\_\-\_\-default\_\-constraint)
|
||||
\begin{DoxyCompactList}\small\item\em Class constructor. \item\end{DoxyCompactList}\item
|
||||
void \hyperlink{classCSP_a4017c17aac9d3e96d0e821ebbe09da7b}{setDomain} (size\_\-t index, std::vector$<$ T $>$ domain)
|
||||
\begin{DoxyCompactList}\small\item\em Set the domain for the i-\/th variable. \item\end{DoxyCompactList}\item
|
||||
void \hyperlink{classCSP_a65518e67e33e31bff1b5f9aabdf80a01}{setDomain} (size\_\-t index, T domain\mbox{[}$\,$\mbox{]}, int size)
|
||||
\begin{DoxyCompactList}\small\item\em Set the domain for the i-\/th variable. \item\end{DoxyCompactList}\item
|
||||
void \hyperlink{classCSP_a534a0d9bd10fb544f94196bf3c386657}{setConstraint} (bool($\ast$c)(std::vector$<$ \hyperlink{structCSPvariable}{CSPvariable}$<$ T $>$ $>$))
|
||||
\begin{DoxyCompactList}\small\item\em Apply the constraint to the \hyperlink{classCSP}{CSP} as a boolean function. \item\end{DoxyCompactList}\item
|
||||
void \hyperlink{classCSP_a457e1df05d4ec16be00118bda22fd882}{setConstraint} (std::vector$<$ bool($\ast$)(std::vector$<$ \hyperlink{structCSPvariable}{CSPvariable}$<$ T $>$ $>$) $>$ c)
|
||||
\begin{DoxyCompactList}\small\item\em Apply the constraints to the \hyperlink{classCSP}{CSP} as vector of boolean functions. \item\end{DoxyCompactList}\item
|
||||
void \hyperlink{classCSP_a0231b93bceae257f0e1c35041f8fe63f}{dropConstraint} (size\_\-t index)
|
||||
\begin{DoxyCompactList}\small\item\em Drops a constraint from the \hyperlink{classCSP}{CSP}. \item\end{DoxyCompactList}\item
|
||||
void \hyperlink{classCSP_a8dc6aec6ca7e40d198e58b0ec14fee66}{appendConstraint} (bool($\ast$c)(std::vector$<$ \hyperlink{structCSPvariable}{CSPvariable}$<$ T $>$ $>$))
|
||||
\begin{DoxyCompactList}\small\item\em Append a constraint to the list of the constraint of the \hyperlink{classCSP}{CSP}. \item\end{DoxyCompactList}\item
|
||||
\hypertarget{classCSP_a466845256e638c5e258fd728b641359f}{
|
||||
void \hyperlink{classCSP_a466845256e638c5e258fd728b641359f}{refreshDomains} (void)}
|
||||
\label{classCSP_a466845256e638c5e258fd728b641359f}
|
||||
|
||||
\begin{DoxyCompactList}\small\item\em Updates the domains of the variables. Any constraint or node fixed value is applied. \item\end{DoxyCompactList}\item
|
||||
std::vector$<$ T $>$ \hyperlink{classCSP_a2a9a7d8072613f6984795d5495373847}{getDomain} (size\_\-t index)
|
||||
\begin{DoxyCompactList}\small\item\em Get the domain of the i-\/th variable. \item\end{DoxyCompactList}\item
|
||||
size\_\-t \hyperlink{classCSP_a91a0e89bc1882d39b88122bee392c5f3}{getSize} (void)
|
||||
\begin{DoxyCompactList}\small\item\em Get the number of variables in the current \hyperlink{classCSP}{CSP}. \item\end{DoxyCompactList}\item
|
||||
void \hyperlink{classCSP_ac25064c5b2d4e1020173b56913251ebd}{setValue} (size\_\-t index, T value)
|
||||
\begin{DoxyCompactList}\small\item\em Set the value of a variable as a constraint. \item\end{DoxyCompactList}\item
|
||||
void \hyperlink{classCSP_a4c0cae125a610f519dc22eaec255a0ae}{unsetValue} (size\_\-t index)
|
||||
\begin{DoxyCompactList}\small\item\em Marks a variable as not set, and if a default value was assigned in the \hyperlink{classCSP}{CSP} constructor, this value will be set. By default, unless specified in the constructor, all the variables are considered as not set. \item\end{DoxyCompactList}\item
|
||||
bool \hyperlink{classCSP_a7ef9eb91c38815c9d82182696a6bd5d3}{isSatisfiable} (void)
|
||||
\begin{DoxyCompactList}\small\item\em Check if the current \hyperlink{classCSP}{CSP}, with the applied constraints, is satisfiable. \item\end{DoxyCompactList}\item
|
||||
bool \hyperlink{classCSP_ae96286c6c7dfb6fe077544e0d4af15f4}{hasUniqueSolution} (void)
|
||||
\begin{DoxyCompactList}\small\item\em Check if the \hyperlink{classCSP}{CSP}, with the given variables, domains and constraints, admits a unique solution, i.e. each domain of each variable contains an only element. \item\end{DoxyCompactList}\item
|
||||
\hypertarget{classCSP_ac74cb751589a58bf6f2815f6878d2213}{
|
||||
void \hyperlink{classCSP_ac74cb751589a58bf6f2815f6878d2213}{assignUniqueDomains} (void)}
|
||||
\label{classCSP_ac74cb751589a58bf6f2815f6878d2213}
|
||||
|
||||
\begin{DoxyCompactList}\small\item\em Check if any of the variables in the \hyperlink{classCSP}{CSP} has a domain containing an only item. If so, it automatically assignes that item as value of the variable. \item\end{DoxyCompactList}\item
|
||||
bool \hyperlink{classCSP_a213dafc1aae7b1825371810a511eca4f}{isSet} (size\_\-t i)
|
||||
\begin{DoxyCompactList}\small\item\em Check if the i-\/th variable in the \hyperlink{classCSP}{CSP} has a fixed value. \item\end{DoxyCompactList}\item
|
||||
T \hyperlink{classCSP_aafa5e1a65d6c5d80780437d8d684f32a}{value} (size\_\-t i)
|
||||
\begin{DoxyCompactList}\small\item\em Get the value of the i-\/th variable of the \hyperlink{classCSP}{CSP}. Be careful: before using this function you should check whether the variable you're going to check is actually set, using the \hyperlink{classCSP_a213dafc1aae7b1825371810a511eca4f}{isSet()} method, unless you know what you're doing, in order to avoid reading inconsistent data. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\subsection{Detailed Description}
|
||||
\subsubsection*{template$<$class T$>$ class CSP$<$ T $>$}
|
||||
|
||||
Main class for managing a \hyperlink{classCSP}{CSP}.
|
||||
|
||||
\subsection{Constructor \& Destructor Documentation}
|
||||
\hypertarget{classCSP_ad49548121582cc2d59e0d7f100092b75}{
|
||||
\index{CSP@{CSP}!CSP@{CSP}}
|
||||
\index{CSP@{CSP}!CSP@{CSP}}
|
||||
\subsubsection[{CSP}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf CSP}$<$ T $>$::{\bf CSP} (int {\em n}, \/ bool($\ast$)(std::vector$<$ {\bf CSPvariable}$<$ T $>$ $>$) {\em c} = {\ttfamily \_\-\_\-default\_\-constraint})}}
|
||||
\label{classCSP_ad49548121582cc2d59e0d7f100092b75}
|
||||
|
||||
|
||||
Class constructor.
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
\item[{\em n}]Number of variables in the \hyperlink{classCSP}{CSP} \item[{\em c}]Boolean function representing the constraint of the \hyperlink{classCSP}{CSP} If no constraint function is set in the constructor or using the applyConstraint() method, a default function always returning true will be used, that allows any domain for any variable to be valid (no constraint) \end{DoxyParams}
|
||||
\hypertarget{classCSP_a734bb08d8f45394a2acfc8822981a6d0}{
|
||||
\index{CSP@{CSP}!CSP@{CSP}}
|
||||
\index{CSP@{CSP}!CSP@{CSP}}
|
||||
\subsubsection[{CSP}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf CSP}$<$ T $>$::{\bf CSP} (int {\em n}, \/ T {\em default\_\-value}, \/ bool {\em set\_\-variables} = {\ttfamily false}, \/ bool($\ast$)(std::vector$<$ {\bf CSPvariable}$<$ T $>$ $>$) {\em c} = {\ttfamily \_\-\_\-default\_\-constraint})\hspace{0.3cm}{\ttfamily \mbox{[}inline\mbox{]}}}}
|
||||
\label{classCSP_a734bb08d8f45394a2acfc8822981a6d0}
|
||||
|
||||
|
||||
Class constructor.
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
\item[{\em n}]Number of variables in the \hyperlink{classCSP}{CSP} \item[{\em default\_\-value}]Default value for the variables in the \hyperlink{classCSP}{CSP} when initialized \item[{\em set\_\-variables}]Decide whether mark the variables set with default\_\-value as \char`\"{}set\char`\"{} or \char`\"{}not set\char`\"{} (default: not set) \item[{\em c}]Boolean function representing the constraint of the \hyperlink{classCSP}{CSP} If no constraint function is set in the constructor or using the applyConstraint() method, a default function always returning true will be used, that allows any domain for any variable to be valid (no constraint) \end{DoxyParams}
|
||||
|
||||
|
||||
\subsection{Member Function Documentation}
|
||||
\hypertarget{classCSP_a8dc6aec6ca7e40d198e58b0ec14fee66}{
|
||||
\index{CSP@{CSP}!appendConstraint@{appendConstraint}}
|
||||
\index{appendConstraint@{appendConstraint}!CSP@{CSP}}
|
||||
\subsubsection[{appendConstraint}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ void {\bf CSP}$<$ T $>$::appendConstraint (bool($\ast$)(std::vector$<$ {\bf CSPvariable}$<$ T $>$ $>$) {\em c})}}
|
||||
\label{classCSP_a8dc6aec6ca7e40d198e58b0ec14fee66}
|
||||
|
||||
|
||||
Append a constraint to the list of the constraint of the \hyperlink{classCSP}{CSP}.
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
\item[{\em c}]A function pointer returning a boolean value representing the new constraint \end{DoxyParams}
|
||||
\hypertarget{classCSP_a0231b93bceae257f0e1c35041f8fe63f}{
|
||||
\index{CSP@{CSP}!dropConstraint@{dropConstraint}}
|
||||
\index{dropConstraint@{dropConstraint}!CSP@{CSP}}
|
||||
\subsubsection[{dropConstraint}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ void {\bf CSP}$<$ T $>$::dropConstraint (size\_\-t {\em index})\hspace{0.3cm}{\ttfamily \mbox{[}inline\mbox{]}}}}
|
||||
\label{classCSP_a0231b93bceae257f0e1c35041f8fe63f}
|
||||
|
||||
|
||||
Drops a constraint from the \hyperlink{classCSP}{CSP}.
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
\item[{\em index}]Index of the constraint to be dropped \end{DoxyParams}
|
||||
\hypertarget{classCSP_a2a9a7d8072613f6984795d5495373847}{
|
||||
\index{CSP@{CSP}!getDomain@{getDomain}}
|
||||
\index{getDomain@{getDomain}!CSP@{CSP}}
|
||||
\subsubsection[{getDomain}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ std::vector$<$ T $>$ {\bf CSP}$<$ T $>$::getDomain (size\_\-t {\em index})\hspace{0.3cm}{\ttfamily \mbox{[}inline\mbox{]}}}}
|
||||
\label{classCSP_a2a9a7d8072613f6984795d5495373847}
|
||||
|
||||
|
||||
Get the domain of the i-\/th variable.
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
\item[{\em index}]Variable for which we're going to get the domain \end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
The domain of the i-\/th variable as a vector of T
|
||||
\end{DoxyReturn}
|
||||
\hypertarget{classCSP_a91a0e89bc1882d39b88122bee392c5f3}{
|
||||
\index{CSP@{CSP}!getSize@{getSize}}
|
||||
\index{getSize@{getSize}!CSP@{CSP}}
|
||||
\subsubsection[{getSize}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ size\_\-t {\bf CSP}$<$ T $>$::getSize (void)\hspace{0.3cm}{\ttfamily \mbox{[}inline\mbox{]}}}}
|
||||
\label{classCSP_a91a0e89bc1882d39b88122bee392c5f3}
|
||||
|
||||
|
||||
Get the number of variables in the current \hyperlink{classCSP}{CSP}.
|
||||
|
||||
\begin{DoxyReturn}{Returns}
|
||||
Size of the \hyperlink{classCSP}{CSP}
|
||||
\end{DoxyReturn}
|
||||
\hypertarget{classCSP_ae96286c6c7dfb6fe077544e0d4af15f4}{
|
||||
\index{CSP@{CSP}!hasUniqueSolution@{hasUniqueSolution}}
|
||||
\index{hasUniqueSolution@{hasUniqueSolution}!CSP@{CSP}}
|
||||
\subsubsection[{hasUniqueSolution}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ bool {\bf CSP}$<$ T $>$::hasUniqueSolution (void)\hspace{0.3cm}{\ttfamily \mbox{[}inline\mbox{]}}}}
|
||||
\label{classCSP_ae96286c6c7dfb6fe077544e0d4af15f4}
|
||||
|
||||
|
||||
Check if the \hyperlink{classCSP}{CSP}, with the given variables, domains and constraints, admits a unique solution, i.e. each domain of each variable contains an only element.
|
||||
|
||||
\begin{DoxyReturn}{Returns}
|
||||
true if the \hyperlink{classCSP}{CSP} has an only possible solution, false otherwise
|
||||
\end{DoxyReturn}
|
||||
\hypertarget{classCSP_a7ef9eb91c38815c9d82182696a6bd5d3}{
|
||||
\index{CSP@{CSP}!isSatisfiable@{isSatisfiable}}
|
||||
\index{isSatisfiable@{isSatisfiable}!CSP@{CSP}}
|
||||
\subsubsection[{isSatisfiable}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ bool {\bf CSP}$<$ T $>$::isSatisfiable (void)\hspace{0.3cm}{\ttfamily \mbox{[}inline\mbox{]}}}}
|
||||
\label{classCSP_a7ef9eb91c38815c9d82182696a6bd5d3}
|
||||
|
||||
|
||||
Check if the current \hyperlink{classCSP}{CSP}, with the applied constraints, is satisfiable.
|
||||
|
||||
\begin{DoxyReturn}{Returns}
|
||||
true if the \hyperlink{classCSP}{CSP} has at least a possible solution, false otherwise
|
||||
\end{DoxyReturn}
|
||||
\hypertarget{classCSP_a213dafc1aae7b1825371810a511eca4f}{
|
||||
\index{CSP@{CSP}!isSet@{isSet}}
|
||||
\index{isSet@{isSet}!CSP@{CSP}}
|
||||
\subsubsection[{isSet}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ bool {\bf CSP}$<$ T $>$::isSet (size\_\-t {\em i})\hspace{0.3cm}{\ttfamily \mbox{[}inline\mbox{]}}}}
|
||||
\label{classCSP_a213dafc1aae7b1825371810a511eca4f}
|
||||
|
||||
|
||||
Check if the i-\/th variable in the \hyperlink{classCSP}{CSP} has a fixed value.
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
\item[{\em i}]Index of the variable to be checked \end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
true if the i-\/th variable has a fixed value, false otherwise
|
||||
\end{DoxyReturn}
|
||||
\hypertarget{classCSP_a457e1df05d4ec16be00118bda22fd882}{
|
||||
\index{CSP@{CSP}!setConstraint@{setConstraint}}
|
||||
\index{setConstraint@{setConstraint}!CSP@{CSP}}
|
||||
\subsubsection[{setConstraint}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ void {\bf CSP}$<$ T $>$::setConstraint (std::vector$<$ bool($\ast$)(std::vector$<$ {\bf CSPvariable}$<$ T $>$ $>$) $>$ {\em c})\hspace{0.3cm}{\ttfamily \mbox{[}inline\mbox{]}}}}
|
||||
\label{classCSP_a457e1df05d4ec16be00118bda22fd882}
|
||||
|
||||
|
||||
Apply the constraints to the \hyperlink{classCSP}{CSP} as vector of boolean functions.
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
\item[{\em c}]Vector containing pointers to boolean functions representing the constraints of the \hyperlink{classCSP}{CSP} \end{DoxyParams}
|
||||
\hypertarget{classCSP_a534a0d9bd10fb544f94196bf3c386657}{
|
||||
\index{CSP@{CSP}!setConstraint@{setConstraint}}
|
||||
\index{setConstraint@{setConstraint}!CSP@{CSP}}
|
||||
\subsubsection[{setConstraint}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ void {\bf CSP}$<$ T $>$::setConstraint (bool($\ast$)(std::vector$<$ {\bf CSPvariable}$<$ T $>$ $>$) {\em c})}}
|
||||
\label{classCSP_a534a0d9bd10fb544f94196bf3c386657}
|
||||
|
||||
|
||||
Apply the constraint to the \hyperlink{classCSP}{CSP} as a boolean function.
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
\item[{\em c}]Boolean function representing the constraint of the \hyperlink{classCSP}{CSP} \end{DoxyParams}
|
||||
\hypertarget{classCSP_a65518e67e33e31bff1b5f9aabdf80a01}{
|
||||
\index{CSP@{CSP}!setDomain@{setDomain}}
|
||||
\index{setDomain@{setDomain}!CSP@{CSP}}
|
||||
\subsubsection[{setDomain}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ void {\bf CSP}$<$ T $>$::setDomain (size\_\-t {\em index}, \/ T {\em domain}\mbox{[}$\,$\mbox{]}, \/ int {\em size})\hspace{0.3cm}{\ttfamily \mbox{[}inline\mbox{]}}}}
|
||||
\label{classCSP_a65518e67e33e31bff1b5f9aabdf80a01}
|
||||
|
||||
|
||||
Set the domain for the i-\/th variable.
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
\item[{\em index}]Variable for which we're setting the domain \item[{\em domain}]Array containing the possible values for that variable \item[{\em size}]Size of \char`\"{}domain\char`\"{} array \end{DoxyParams}
|
||||
\hypertarget{classCSP_a4017c17aac9d3e96d0e821ebbe09da7b}{
|
||||
\index{CSP@{CSP}!setDomain@{setDomain}}
|
||||
\index{setDomain@{setDomain}!CSP@{CSP}}
|
||||
\subsubsection[{setDomain}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ void {\bf CSP}$<$ T $>$::setDomain (size\_\-t {\em index}, \/ std::vector$<$ T $>$ {\em domain})}}
|
||||
\label{classCSP_a4017c17aac9d3e96d0e821ebbe09da7b}
|
||||
|
||||
|
||||
Set the domain for the i-\/th variable.
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
\item[{\em index}]Variable for which we're setting the domain \item[{\em domain}]Vector containing the possible values for that variable \end{DoxyParams}
|
||||
\hypertarget{classCSP_ac25064c5b2d4e1020173b56913251ebd}{
|
||||
\index{CSP@{CSP}!setValue@{setValue}}
|
||||
\index{setValue@{setValue}!CSP@{CSP}}
|
||||
\subsubsection[{setValue}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ void {\bf CSP}$<$ T $>$::setValue (size\_\-t {\em index}, \/ T {\em value})\hspace{0.3cm}{\ttfamily \mbox{[}inline\mbox{]}}}}
|
||||
\label{classCSP_ac25064c5b2d4e1020173b56913251ebd}
|
||||
|
||||
|
||||
Set the value of a variable as a constraint.
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
\item[{\em index}]Index of the parameter to be set \item[{\em value}]Value to be set \end{DoxyParams}
|
||||
\hypertarget{classCSP_a4c0cae125a610f519dc22eaec255a0ae}{
|
||||
\index{CSP@{CSP}!unsetValue@{unsetValue}}
|
||||
\index{unsetValue@{unsetValue}!CSP@{CSP}}
|
||||
\subsubsection[{unsetValue}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ void {\bf CSP}$<$ T $>$::unsetValue (size\_\-t {\em index})\hspace{0.3cm}{\ttfamily \mbox{[}inline\mbox{]}}}}
|
||||
\label{classCSP_a4c0cae125a610f519dc22eaec255a0ae}
|
||||
|
||||
|
||||
Marks a variable as not set, and if a default value was assigned in the \hyperlink{classCSP}{CSP} constructor, this value will be set. By default, unless specified in the constructor, all the variables are considered as not set.
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
\item[{\em index}]Index of the variable to be unset \end{DoxyParams}
|
||||
\hypertarget{classCSP_aafa5e1a65d6c5d80780437d8d684f32a}{
|
||||
\index{CSP@{CSP}!value@{value}}
|
||||
\index{value@{value}!CSP@{CSP}}
|
||||
\subsubsection[{value}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ T {\bf CSP}$<$ T $>$::value (size\_\-t {\em i})\hspace{0.3cm}{\ttfamily \mbox{[}inline\mbox{]}}}}
|
||||
\label{classCSP_aafa5e1a65d6c5d80780437d8d684f32a}
|
||||
|
||||
|
||||
Get the value of the i-\/th variable of the \hyperlink{classCSP}{CSP}. Be careful: before using this function you should check whether the variable you're going to check is actually set, using the \hyperlink{classCSP_a213dafc1aae7b1825371810a511eca4f}{isSet()} method, unless you know what you're doing, in order to avoid reading inconsistent data.
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
\item[{\em i}]Index of the variable to get \end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
The value of the variable, if the variable exists
|
||||
\end{DoxyReturn}
|
||||
|
||||
|
||||
The documentation for this class was generated from the following files:\begin{DoxyCompactItemize}
|
||||
\item
|
||||
csp++-\/def.h\item
|
||||
csp++.cpp\end{DoxyCompactItemize}
|
46
doc/latex/classCSPexception.tex
Normal file
46
doc/latex/classCSPexception.tex
Normal file
|
@ -0,0 +1,46 @@
|
|||
\hypertarget{classCSPexception}{
|
||||
\section{CSPexception Class Reference}
|
||||
\label{classCSPexception}\index{CSPexception@{CSPexception}}
|
||||
}
|
||||
|
||||
|
||||
Class for managing exception in \hyperlink{classCSP}{CSP}.
|
||||
|
||||
|
||||
|
||||
|
||||
{\ttfamily \#include $<$csp++.h$>$}
|
||||
|
||||
\subsection*{Public Member Functions}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
\hyperlink{classCSPexception_a810bcfbb11d2e35d7b95f1e2b11b408c}{CSPexception} (const char $\ast$m)
|
||||
\begin{DoxyCompactList}\small\item\em Constructor. \item\end{DoxyCompactList}\item
|
||||
\hypertarget{classCSPexception_a7013e90a6c26ba4c15bc6fbc42be02ef}{
|
||||
virtual const char $\ast$ \hyperlink{classCSPexception_a7013e90a6c26ba4c15bc6fbc42be02ef}{what} ()}
|
||||
\label{classCSPexception_a7013e90a6c26ba4c15bc6fbc42be02ef}
|
||||
|
||||
\begin{DoxyCompactList}\small\item\em Return the description of the exception. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\subsection{Detailed Description}
|
||||
Class for managing exception in \hyperlink{classCSP}{CSP}.
|
||||
|
||||
\subsection{Constructor \& Destructor Documentation}
|
||||
\hypertarget{classCSPexception_a810bcfbb11d2e35d7b95f1e2b11b408c}{
|
||||
\index{CSPexception@{CSPexception}!CSPexception@{CSPexception}}
|
||||
\index{CSPexception@{CSPexception}!CSPexception@{CSPexception}}
|
||||
\subsubsection[{CSPexception}]{\setlength{\rightskip}{0pt plus 5cm}CSPexception::CSPexception (const char $\ast$ {\em m})\hspace{0.3cm}{\ttfamily \mbox{[}inline\mbox{]}}}}
|
||||
\label{classCSPexception_a810bcfbb11d2e35d7b95f1e2b11b408c}
|
||||
|
||||
|
||||
Constructor.
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
\item[{\em m}]Message describing the exception \end{DoxyParams}
|
||||
|
||||
|
||||
The documentation for this class was generated from the following file:\begin{DoxyCompactItemize}
|
||||
\item
|
||||
csp++-\/def.h\end{DoxyCompactItemize}
|
350
doc/latex/doxygen.sty
Normal file
350
doc/latex/doxygen.sty
Normal file
|
@ -0,0 +1,350 @@
|
|||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesPackage{doxygen}
|
||||
|
||||
% Packages used by this style file
|
||||
\RequirePackage{alltt}
|
||||
\RequirePackage{array}
|
||||
\RequirePackage{calc}
|
||||
\RequirePackage{color}
|
||||
\RequirePackage{fancyhdr}
|
||||
\RequirePackage{verbatim}
|
||||
|
||||
% Setup fancy headings
|
||||
\pagestyle{fancyplain}
|
||||
\newcommand{\clearemptydoublepage}{%
|
||||
\newpage{\pagestyle{empty}\cleardoublepage}%
|
||||
}
|
||||
\renewcommand{\chaptermark}[1]{%
|
||||
\markboth{#1}{}%
|
||||
}
|
||||
\renewcommand{\sectionmark}[1]{%
|
||||
\markright{\thesection\ #1}%
|
||||
}
|
||||
\lhead[\fancyplain{}{\bfseries\thepage}]{%
|
||||
\fancyplain{}{\bfseries\rightmark}%
|
||||
}
|
||||
\rhead[\fancyplain{}{\bfseries\leftmark}]{%
|
||||
\fancyplain{}{\bfseries\thepage}%
|
||||
}
|
||||
\rfoot[\fancyplain{}{\bfseries\scriptsize%
|
||||
Generated on Mon May 24 01:58:01 2010 for libCSP++ by Doxygen }]{}
|
||||
\lfoot[]{\fancyplain{}{\bfseries\scriptsize%
|
||||
Generated on Mon May 24 01:58:01 2010 for libCSP++ by Doxygen }}
|
||||
\cfoot{}
|
||||
|
||||
%---------- Internal commands used in this style file ----------------
|
||||
|
||||
% Generic environment used by all paragraph-based environments defined
|
||||
% below. Note that the command \title{...} needs to be defined inside
|
||||
% those environments!
|
||||
\newenvironment{DoxyDesc}[1]{%
|
||||
\begin{list}{}%
|
||||
{%
|
||||
\settowidth{\labelwidth}{40pt}%
|
||||
\setlength{\leftmargin}{\labelwidth}%
|
||||
\setlength{\parsep}{0pt}%
|
||||
\setlength{\itemsep}{-4pt}%
|
||||
\renewcommand{\makelabel}{\entrylabel}%
|
||||
}%
|
||||
\item[#1]%
|
||||
}{%
|
||||
\end{list}%
|
||||
}
|
||||
|
||||
%---------- Commands used by doxygen LaTeX output generator ----------
|
||||
|
||||
% Used by <pre> ... </pre>
|
||||
\newenvironment{DoxyPre}{%
|
||||
\small%
|
||||
\begin{alltt}%
|
||||
}{%
|
||||
\end{alltt}%
|
||||
\normalsize%
|
||||
}
|
||||
|
||||
% Used by @code ... @endcode
|
||||
\newenvironment{DoxyCode}{%
|
||||
\footnotesize%
|
||||
\verbatim%
|
||||
}{%
|
||||
\endverbatim%
|
||||
\normalsize%
|
||||
}
|
||||
|
||||
% Used by @example, @include, @includelineno and @dontinclude
|
||||
\newenvironment{DoxyCodeInclude}{%
|
||||
\DoxyCode%
|
||||
}{%
|
||||
\endDoxyCode%
|
||||
}
|
||||
|
||||
% Used by @verbatim ... @endverbatim
|
||||
\newenvironment{DoxyVerb}{%
|
||||
\footnotesize%
|
||||
\verbatim%
|
||||
}{%
|
||||
\endverbatim%
|
||||
\normalsize%
|
||||
}
|
||||
|
||||
% Used by @verbinclude
|
||||
\newenvironment{DoxyVerbInclude}{%
|
||||
\DoxyVerb%
|
||||
}{%
|
||||
\endDoxyVerb%
|
||||
}
|
||||
|
||||
% Used by numbered lists (using '-#' or <ol> ... </ol>)
|
||||
\newenvironment{DoxyEnumerate}{%
|
||||
\enumerate%
|
||||
}{%
|
||||
\endenumerate%
|
||||
}
|
||||
|
||||
% Used by bullet lists (using '-', @li, @arg, or <ul> ... </ul>)
|
||||
\newenvironment{DoxyItemize}{%
|
||||
\itemize%
|
||||
}{%
|
||||
\enditemize%
|
||||
}
|
||||
|
||||
% Used by description lists (using <dl> ... </dl>)
|
||||
\newenvironment{DoxyDescription}{%
|
||||
\description%
|
||||
}{%
|
||||
\enddescription%
|
||||
}
|
||||
|
||||
% Used by @image, @dotfile, and @dot ... @enddot
|
||||
% (only if caption is specified)
|
||||
\newenvironment{DoxyImage}{%
|
||||
\begin{figure}[H]%
|
||||
\begin{center}%
|
||||
}{%
|
||||
\end{center}%
|
||||
\end{figure}%
|
||||
}
|
||||
|
||||
% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
|
||||
% (only if no caption is specified)
|
||||
\newenvironment{DoxyImageNoCaption}{%
|
||||
}{%
|
||||
}
|
||||
|
||||
% Used by @attention
|
||||
\newenvironment{DoxyAttention}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @author and @authors
|
||||
\newenvironment{DoxyAuthor}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @date
|
||||
\newenvironment{DoxyDate}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @invariant
|
||||
\newenvironment{DoxyInvariant}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @note
|
||||
\newenvironment{DoxyNote}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @post
|
||||
\newenvironment{DoxyPostcond}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @pre
|
||||
\newenvironment{DoxyPrecond}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @remark
|
||||
\newenvironment{DoxyRemark}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @return
|
||||
\newenvironment{DoxyReturn}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @since
|
||||
\newenvironment{DoxySince}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @see
|
||||
\newenvironment{DoxySeeAlso}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @version
|
||||
\newenvironment{DoxyVersion}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @warning
|
||||
\newenvironment{DoxyWarning}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @internal
|
||||
\newenvironment{DoxyInternal}[1]{%
|
||||
\paragraph*{#1}%
|
||||
}{%
|
||||
}
|
||||
|
||||
% Used by @par and @paragraph
|
||||
\newenvironment{DoxyParagraph}[1]{%
|
||||
\begin{list}{}%
|
||||
{%
|
||||
\settowidth{\labelwidth}{40pt}%
|
||||
\setlength{\leftmargin}{\labelwidth}%
|
||||
\setlength{\parsep}{0pt}%
|
||||
\setlength{\itemsep}{-4pt}%
|
||||
\renewcommand{\makelabel}{\entrylabel}%
|
||||
}%
|
||||
\item[#1]%
|
||||
}{%
|
||||
\end{list}%
|
||||
}
|
||||
|
||||
% Used by parameter lists
|
||||
\newenvironment{DoxyParams}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
\begin{description}%
|
||||
}{%
|
||||
\end{description}%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by return value lists
|
||||
\newenvironment{DoxyRetVals}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
\begin{description}%
|
||||
}{%
|
||||
\end{description}%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by exception lists
|
||||
\newenvironment{DoxyExceptions}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
\begin{description}%
|
||||
}{%
|
||||
\end{description}%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by template parameter lists
|
||||
\newenvironment{DoxyTemplParams}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
\begin{description}%
|
||||
}{%
|
||||
\end{description}%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
\newcommand{\doxyref}[3]{\textbf{#1} (\textnormal{#2}\,\pageref{#3})}
|
||||
\newenvironment{DoxyCompactList}
|
||||
{\begin{list}{}{
|
||||
\setlength{\leftmargin}{0.5cm}
|
||||
\setlength{\itemsep}{0pt}
|
||||
\setlength{\parsep}{0pt}
|
||||
\setlength{\topsep}{0pt}
|
||||
\renewcommand{\makelabel}{\hfill}}}
|
||||
{\end{list}}
|
||||
\newenvironment{DoxyCompactItemize}
|
||||
{
|
||||
\begin{itemize}
|
||||
\setlength{\itemsep}{-3pt}
|
||||
\setlength{\parsep}{0pt}
|
||||
\setlength{\topsep}{0pt}
|
||||
\setlength{\partopsep}{0pt}
|
||||
}
|
||||
{\end{itemize}}
|
||||
\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}
|
||||
\newlength{\tmplength}
|
||||
\newenvironment{TabularC}[1]
|
||||
{
|
||||
\setlength{\tmplength}
|
||||
{\linewidth/(#1)-\tabcolsep*2-\arrayrulewidth*(#1+1)/(#1)}
|
||||
\par\begin{tabular*}{\linewidth}
|
||||
{*{#1}{|>{\PBS\raggedright\hspace{0pt}}p{\the\tmplength}}|}
|
||||
}
|
||||
{\end{tabular*}\par}
|
||||
\newcommand{\entrylabel}[1]{
|
||||
{\parbox[b]{\labelwidth-4pt}{\makebox[0pt][l]{\textbf{#1}}\vspace{1.5\baselineskip}}}}
|
||||
\newenvironment{Desc}
|
||||
{\begin{list}{}
|
||||
{
|
||||
\settowidth{\labelwidth}{40pt}
|
||||
\setlength{\leftmargin}{\labelwidth}
|
||||
\setlength{\parsep}{0pt}
|
||||
\setlength{\itemsep}{-4pt}
|
||||
\renewcommand{\makelabel}{\entrylabel}
|
||||
}
|
||||
}
|
||||
{\end{list}}
|
||||
\newenvironment{Indent}
|
||||
{\begin{list}{}{\setlength{\leftmargin}{0.5cm}}
|
||||
\item[]\ignorespaces}
|
||||
{\unskip\end{list}}
|
||||
\setlength{\parindent}{0cm}
|
||||
\setlength{\parskip}{0.2cm}
|
||||
\addtocounter{secnumdepth}{1}
|
||||
\sloppy
|
||||
\usepackage[T1]{fontenc}
|
||||
\makeatletter
|
||||
\renewcommand{\paragraph}{\@startsection{paragraph}{4}{0ex}%
|
||||
{-3.25ex plus -1ex minus -0.2ex}%
|
||||
{1.5ex plus 0.2ex}%
|
||||
{\normalfont\normalsize\bfseries}}
|
||||
\makeatother
|
||||
\stepcounter{secnumdepth}
|
||||
\stepcounter{tocdepth}
|
||||
\definecolor{comment}{rgb}{0.5,0.0,0.0}
|
||||
\definecolor{keyword}{rgb}{0.0,0.5,0.0}
|
||||
\definecolor{keywordtype}{rgb}{0.38,0.25,0.125}
|
||||
\definecolor{keywordflow}{rgb}{0.88,0.5,0.0}
|
||||
\definecolor{preprocessor}{rgb}{0.5,0.38,0.125}
|
||||
\definecolor{stringliteral}{rgb}{0.0,0.125,0.25}
|
||||
\definecolor{charliteral}{rgb}{0.0,0.5,0.5}
|
||||
\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0}
|
||||
\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43}
|
||||
\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0}
|
||||
\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0}
|
60
doc/latex/refman.tex
Normal file
60
doc/latex/refman.tex
Normal file
|
@ -0,0 +1,60 @@
|
|||
\documentclass[a4paper]{book}
|
||||
\usepackage{a4wide}
|
||||
\usepackage{makeidx}
|
||||
\usepackage{graphicx}
|
||||
\usepackage{multicol}
|
||||
\usepackage{float}
|
||||
\usepackage{listings}
|
||||
\usepackage{color}
|
||||
\usepackage{textcomp}
|
||||
\usepackage{alltt}
|
||||
\usepackage{times}
|
||||
\usepackage{ifpdf}
|
||||
\ifpdf
|
||||
\usepackage[pdftex,
|
||||
pagebackref=true,
|
||||
colorlinks=true,
|
||||
linkcolor=blue,
|
||||
unicode
|
||||
]{hyperref}
|
||||
\else
|
||||
\usepackage[ps2pdf,
|
||||
pagebackref=true,
|
||||
colorlinks=true,
|
||||
linkcolor=blue,
|
||||
unicode
|
||||
]{hyperref}
|
||||
\usepackage{pspicture}
|
||||
\fi
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage{doxygen}
|
||||
\lstset{language=C++,inputencoding=utf8,basicstyle=\footnotesize,breaklines=true,breakatwhitespace=true,tabsize=8,numbers=left }
|
||||
\makeindex
|
||||
\setcounter{tocdepth}{3}
|
||||
\renewcommand{\footrulewidth}{0.4pt}
|
||||
\begin{document}
|
||||
\hypersetup{pageanchor=false}
|
||||
\begin{titlepage}
|
||||
\vspace*{7cm}
|
||||
\begin{center}
|
||||
{\Large libCSP++ \\[1ex]\large 0.1 }\\
|
||||
\vspace*{1cm}
|
||||
{\large Generated by Doxygen 1.6.3}\\
|
||||
\vspace*{0.5cm}
|
||||
{\small Mon May 24 01:58:01 2010}\\
|
||||
\end{center}
|
||||
\end{titlepage}
|
||||
\clearemptydoublepage
|
||||
\pagenumbering{roman}
|
||||
\tableofcontents
|
||||
\clearemptydoublepage
|
||||
\pagenumbering{arabic}
|
||||
\hypersetup{pageanchor=true}
|
||||
\chapter{Class Index}
|
||||
\input{annotated}
|
||||
\chapter{Class Documentation}
|
||||
\input{classCSP}
|
||||
\include{classCSPexception}
|
||||
\include{structCSPvariable}
|
||||
\printindex
|
||||
\end{document}
|
46
doc/latex/structCSPvariable.tex
Normal file
46
doc/latex/structCSPvariable.tex
Normal file
|
@ -0,0 +1,46 @@
|
|||
\hypertarget{structCSPvariable}{
|
||||
\section{CSPvariable$<$ T $>$ Struct Template Reference}
|
||||
\label{structCSPvariable}\index{CSPvariable@{CSPvariable}}
|
||||
}
|
||||
|
||||
|
||||
Struct used for describing a variable in the \hyperlink{classCSP}{CSP}.
|
||||
|
||||
|
||||
|
||||
|
||||
{\ttfamily \#include $<$csp++.h$>$}
|
||||
|
||||
\subsection*{Public Attributes}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
\hypertarget{structCSPvariable_a1fb7622b0576133aa9a2445da22fddac}{
|
||||
int \hyperlink{structCSPvariable_a1fb7622b0576133aa9a2445da22fddac}{index}}
|
||||
\label{structCSPvariable_a1fb7622b0576133aa9a2445da22fddac}
|
||||
|
||||
\begin{DoxyCompactList}\small\item\em Index of the variable. \item\end{DoxyCompactList}\item
|
||||
\hypertarget{structCSPvariable_a8e7a1cbd9af27e295508794f871dc599}{
|
||||
bool \hyperlink{structCSPvariable_a8e7a1cbd9af27e295508794f871dc599}{fixed}}
|
||||
\label{structCSPvariable_a8e7a1cbd9af27e295508794f871dc599}
|
||||
|
||||
\begin{DoxyCompactList}\small\item\em If the value of the variable is set explicitely, this value is true. \item\end{DoxyCompactList}\item
|
||||
\hypertarget{structCSPvariable_acc2ff31b449351f04b1c3a2a096e584c}{
|
||||
T \hyperlink{structCSPvariable_acc2ff31b449351f04b1c3a2a096e584c}{value}}
|
||||
\label{structCSPvariable_acc2ff31b449351f04b1c3a2a096e584c}
|
||||
|
||||
\begin{DoxyCompactList}\small\item\em The value of the variable. \item\end{DoxyCompactList}\item
|
||||
\hypertarget{structCSPvariable_a66cf86ebf0fbbf8e571d7b585c9528a2}{
|
||||
std::vector$<$ T $>$ \hyperlink{structCSPvariable_a66cf86ebf0fbbf8e571d7b585c9528a2}{domain}}
|
||||
\label{structCSPvariable_a66cf86ebf0fbbf8e571d7b585c9528a2}
|
||||
|
||||
\begin{DoxyCompactList}\small\item\em Domain of the variable, declared as a vector. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\subsection{Detailed Description}
|
||||
\subsubsection*{template$<$class T$>$ struct CSPvariable$<$ T $>$}
|
||||
|
||||
Struct used for describing a variable in the \hyperlink{classCSP}{CSP}.
|
||||
|
||||
The documentation for this struct was generated from the following file:\begin{DoxyCompactItemize}
|
||||
\item
|
||||
csp++-\/def.h\end{DoxyCompactItemize}
|
|
@ -11,6 +11,7 @@
|
|||
* Compiler: gcc
|
||||
*
|
||||
* Author: BlackLight (http://0x00.ath.cx), <blacklight@autistici.org>
|
||||
* Licence: GNU GPL v.3
|
||||
* Company: lulz
|
||||
*
|
||||
* =====================================================================================
|
||||
|
@ -21,36 +22,23 @@
|
|||
#include <vector>
|
||||
#include <cstdlib>
|
||||
#include <cstring>
|
||||
#include "csp++.h"
|
||||
|
||||
// Yes, I know it looks stupid, but ask C++ standard developers about this.
|
||||
// C++ can't expand template class code until a type is explicitely specified.
|
||||
// This is nearly like not using templates at all, but join me in asking C++
|
||||
// compilers developers to massively allow the export keyword and change the
|
||||
// way templates are managed. Until that moment, you must always include the
|
||||
// .cpp file of the library inside your source code as well, and specify later
|
||||
// the types you're going to use this template class for
|
||||
#include "csp++.cpp"
|
||||
#include <csp++/csp++.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
typedef enum {
|
||||
I, CH, A, D, F, E, P, B, L, NL, DK
|
||||
I, CH, DK, D, A, F, E, P, B, L, NL
|
||||
} Country;
|
||||
|
||||
typedef enum {
|
||||
red, green, blue, yellow
|
||||
} Colour;
|
||||
|
||||
// We're going to specify the types we'll use the CSP class for. in our case,
|
||||
// the CSP will manage the colours of the countries
|
||||
template class CSP<Colour>;
|
||||
|
||||
#define COUNTRIES 11
|
||||
#define COLOURS 4
|
||||
|
||||
static const char* countries[COUNTRIES] = {
|
||||
"Italy", "Switz.", "Austria", "Germany", "France", "Spain", "Portugal", "Belgium", "Luxemb.", "Holland", "Denmark"
|
||||
"Italy", "Switz.", "Denmark", "Germany", "Austria", "France", "Spain", "Portugal", "Belgium", "Luxemb.", "Holland"
|
||||
};
|
||||
|
||||
static const char* colours[COLOURS] = {
|
||||
|
|
16
sudoku-2x2x2.txt
Normal file
16
sudoku-2x2x2.txt
Normal file
|
@ -0,0 +1,16 @@
|
|||
#
|
||||
# sudoku.txt - Sample sudoky 2x2x2 that our program can understand
|
||||
# Place a zero to identify an unset cell (that, of course, should
|
||||
# be set by our smart program).
|
||||
#
|
||||
# by BlackLight
|
||||
#
|
||||
|
||||
+-----+-----+
|
||||
| 1 0 | 3 0 |
|
||||
| 0 2 | 0 0 |
|
||||
+-----+-----+
|
||||
| 2 0 | 0 0 |
|
||||
| 0 0 | 0 1 |
|
||||
+-----+-----+
|
||||
|
22
sudoku-easy.txt
Normal file
22
sudoku-easy.txt
Normal file
|
@ -0,0 +1,22 @@
|
|||
#
|
||||
# sudoku.txt - Sample easy sudoky that our program can understand
|
||||
# Place a zero to identify an unset cell (that, of course, should
|
||||
# be set by our smart program).
|
||||
#
|
||||
# by BlackLight
|
||||
#
|
||||
|
||||
+-------+-------+-------+
|
||||
| 6 0 8 | 0 0 0 | 9 0 4 |
|
||||
| 2 0 0 | 0 1 4 | 0 5 0 |
|
||||
| 0 0 7 | 9 8 3 | 0 0 0 |
|
||||
+-------+-------+-------+
|
||||
| 0 2 0 | 5 0 0 | 0 0 9 |
|
||||
| 0 3 9 | 4 0 8 | 5 1 0 |
|
||||
| 8 0 0 | 0 0 9 | 0 7 0 |
|
||||
+-------+-------+-------+
|
||||
| 0 0 0 | 3 9 2 | 7 0 0 |
|
||||
| 0 5 0 | 7 4 0 | 0 0 8 |
|
||||
| 9 0 4 | 0 0 0 | 3 0 6 |
|
||||
+-------+-------+-------+
|
||||
|
22
sudoku-hard.txt
Normal file
22
sudoku-hard.txt
Normal file
|
@ -0,0 +1,22 @@
|
|||
#
|
||||
# sudoku.txt - Sample hard sudoky that our program can understand
|
||||
# Place a zero to identify an unset cell (that, of course, should
|
||||
# be set by our smart program).
|
||||
#
|
||||
# by BlackLight
|
||||
#
|
||||
|
||||
+-------+-------+-------+
|
||||
| 6 0 8 | 0 0 0 | 9 0 4 |
|
||||
| 2 0 0 | 0 1 4 | 0 5 0 |
|
||||
| 0 0 7 | 9 0 3 | 0 0 0 |
|
||||
+-------+-------+-------+
|
||||
| 0 2 0 | 5 0 0 | 0 0 9 |
|
||||
| 0 3 0 | 4 0 8 | 5 1 0 |
|
||||
| 8 0 0 | 0 0 9 | 0 0 0 |
|
||||
+-------+-------+-------+
|
||||
| 0 0 0 | 3 0 2 | 7 0 0 |
|
||||
| 0 5 0 | 7 4 0 | 0 0 8 |
|
||||
| 9 0 4 | 0 0 0 | 3 0 6 |
|
||||
+-------+-------+-------+
|
||||
|
22
sudoku-medium.txt
Normal file
22
sudoku-medium.txt
Normal file
|
@ -0,0 +1,22 @@
|
|||
#
|
||||
# sudoku.txt - Sample medium sudoky that our program can understand
|
||||
# Place a zero to identify an unset cell (that, of course, should
|
||||
# be set by our smart program).
|
||||
#
|
||||
# by BlackLight
|
||||
#
|
||||
|
||||
+-------+-------+-------+
|
||||
| 6 0 8 | 0 0 0 | 9 0 4 |
|
||||
| 2 0 0 | 0 1 4 | 0 5 0 |
|
||||
| 0 0 7 | 9 0 3 | 0 0 0 |
|
||||
+-------+-------+-------+
|
||||
| 0 2 0 | 5 0 0 | 0 0 9 |
|
||||
| 0 3 9 | 4 0 8 | 5 1 0 |
|
||||
| 8 0 0 | 0 0 9 | 0 7 0 |
|
||||
+-------+-------+-------+
|
||||
| 0 0 0 | 3 0 2 | 7 0 0 |
|
||||
| 0 5 0 | 7 4 0 | 0 0 8 |
|
||||
| 9 0 4 | 0 0 0 | 3 0 6 |
|
||||
+-------+-------+-------+
|
||||
|
293
sudoku.cpp
Normal file
293
sudoku.cpp
Normal file
|
@ -0,0 +1,293 @@
|
|||
/*
|
||||
* =====================================================================================
|
||||
*
|
||||
* Filename: sudoku.cpp
|
||||
*
|
||||
* Description: A small program that using libCSP++ allows you to solve a sudoku.
|
||||
* The sudoku is passed as text file, an example of the format can
|
||||
* be found in the file sudoku.txt. If no parameters is passed to the
|
||||
* program, this default sudoku is loaded and solved, otherwise the
|
||||
* sudoku chosen by the user in the specified text file is solved.
|
||||
*
|
||||
* Usage: ./sudoku <text file containing the sudoku>
|
||||
* Complile: g++ -IPATH/TO/csp++.h -o sudoku sudoku.cpp
|
||||
* Version: 1.0
|
||||
* Created: 17/05/2010 09:22:25
|
||||
* Revision: none
|
||||
* Compiler: gcc
|
||||
*
|
||||
* Author: BlackLight (http://0x00.ath.cx), <blacklight@autistici.org>
|
||||
* Licence: GNU GPL v.3
|
||||
* Company: lulz
|
||||
*
|
||||
* =====================================================================================
|
||||
*/
|
||||
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <string>
|
||||
#include <cstdlib>
|
||||
#include <cmath>
|
||||
#include <csp++/csp++.h>
|
||||
|
||||
#define NOVALUE -1
|
||||
#define DEFAULT_SUDOKU_FILE "sudoku.txt"
|
||||
|
||||
using namespace std;
|
||||
|
||||
int WIDTH = 0;
|
||||
int HEIGHT = 0;
|
||||
|
||||
int
|
||||
toID (int i, int j)
|
||||
{
|
||||
return (i * (WIDTH*WIDTH)) + j;
|
||||
}
|
||||
|
||||
bool
|
||||
rowsConstraint ( std::vector< CSPvariable<int> > variables)
|
||||
{
|
||||
for ( int i=0; i < WIDTH*WIDTH; i++ ) {
|
||||
for ( int j=0; j < HEIGHT*HEIGHT; j++ ) {
|
||||
for ( int k=0; k < j; k++ ) {
|
||||
int var1 = toID(i,j);
|
||||
int var2 = toID(i,k);
|
||||
|
||||
if ( variables[var1].fixed || variables[var2].fixed ) {
|
||||
if ( variables[var1].value == variables[var2].value ) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
colsConstraint ( std::vector< CSPvariable<int> > variables)
|
||||
{
|
||||
for ( int i=0; i < HEIGHT*HEIGHT; i++ ) {
|
||||
for ( int j=0; j < WIDTH*WIDTH; j++ ) {
|
||||
for ( int k=0; k < j; k++ ) {
|
||||
int var1 = toID(j,i);
|
||||
int var2 = toID(k,i);
|
||||
|
||||
if ( variables[var1].fixed || variables[var2].fixed ) {
|
||||
if ( variables[var1].value == variables[var2].value ) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
cellsConstraint ( std::vector< CSPvariable<int> > variables)
|
||||
{
|
||||
for ( int x=0; x < WIDTH*WIDTH; x += WIDTH ) {
|
||||
for ( int y=0; y < HEIGHT*HEIGHT; y += HEIGHT ) {
|
||||
for ( int i=x; i < x+WIDTH; i++ ) {
|
||||
for ( int j=y; j < y+HEIGHT; j++ ) {
|
||||
int var1 = toID(i,j);
|
||||
|
||||
for ( int k=x; k < i; k++ ) {
|
||||
for ( int l=y; l < j; l++ ) {
|
||||
int var2 = toID(k,l);
|
||||
|
||||
if ( variables[var1].fixed || variables[var2].fixed ) {
|
||||
if ( variables[var1].value == variables[var2].value ) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void
|
||||
printSudoku (CSP<int> csp)
|
||||
{
|
||||
for ( int i=0; i < WIDTH*WIDTH; i++ ) {
|
||||
if (!(i % WIDTH))
|
||||
cout << endl;
|
||||
|
||||
for ( int j=0; j < HEIGHT*HEIGHT; j++ ) {
|
||||
int id = toID(j,i);
|
||||
|
||||
if (!(j % HEIGHT))
|
||||
cout << " ";
|
||||
|
||||
if (csp.isSet(id))
|
||||
cout << csp.value(id) << " ";
|
||||
else
|
||||
cout << ". ";
|
||||
}
|
||||
|
||||
cout << endl;
|
||||
}
|
||||
|
||||
cout << endl;
|
||||
}
|
||||
|
||||
CSP<int>
|
||||
getSudoku (const char* sudokuFile)
|
||||
{
|
||||
string line;
|
||||
vector< vector<int> > sudoku;
|
||||
ifstream in(sudokuFile);
|
||||
|
||||
if (!in)
|
||||
throw "Unable to read input file";
|
||||
|
||||
for ( HEIGHT = 0; getline(in, line); HEIGHT++ ) {
|
||||
vector<int> values;
|
||||
string value = "";
|
||||
bool hasNumbers = false;
|
||||
|
||||
for ( int j=0; j < line.length(); j++) {
|
||||
if (line[j] >= '0' && line[j] <= '9') {
|
||||
value += line[j];
|
||||
hasNumbers = true;
|
||||
} else {
|
||||
if (value.length() > 0) {
|
||||
values.push_back( atoi(value.c_str()) );
|
||||
value = "";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!hasNumbers) {
|
||||
HEIGHT--;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (value.length() > 0) {
|
||||
values.push_back( atoi(value.c_str()) );
|
||||
value = "";
|
||||
}
|
||||
|
||||
if ( HEIGHT == 0 )
|
||||
WIDTH = values.size();
|
||||
else {
|
||||
if (values.size() != WIDTH) {
|
||||
in.close();
|
||||
throw "The columns have different number of elements";
|
||||
}
|
||||
}
|
||||
|
||||
sudoku.push_back(values);
|
||||
}
|
||||
|
||||
in.close();
|
||||
|
||||
if (HEIGHT != WIDTH)
|
||||
throw "The grid is not a square";
|
||||
|
||||
WIDTH = (int) sqrt(WIDTH);
|
||||
HEIGHT = (int) sqrt(HEIGHT);
|
||||
vector<int> domain;
|
||||
|
||||
for ( int i=1; i <= WIDTH*WIDTH; i++)
|
||||
domain.push_back(i);
|
||||
|
||||
CSP<int> csp( WIDTH*WIDTH * HEIGHT*HEIGHT, NOVALUE, false);
|
||||
csp.appendConstraint(rowsConstraint);
|
||||
csp.appendConstraint(colsConstraint);
|
||||
csp.appendConstraint(cellsConstraint);
|
||||
|
||||
for ( int i=0; i < csp.getSize(); i++ )
|
||||
csp.setDomain(i, domain);
|
||||
|
||||
for ( int i=0; i < sudoku.size(); i++ ) {
|
||||
for ( int j=0; j < sudoku[i].size(); j++ ) {
|
||||
if (sudoku[i][j] != 0) {
|
||||
csp.setValue( toID(j,i), sudoku[i][j] );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return csp;
|
||||
}
|
||||
|
||||
int
|
||||
main ( int argc, char *argv[] )
|
||||
{
|
||||
string sudokuFile;
|
||||
CSP<int> csp;
|
||||
|
||||
if (argc == 1) {
|
||||
cout << "Loading default sudoku from " << DEFAULT_SUDOKU_FILE
|
||||
<< ", pass a different file as argument if you want to "
|
||||
<< "load a different sudoku\n\n";
|
||||
sudokuFile = DEFAULT_SUDOKU_FILE;
|
||||
} else {
|
||||
sudokuFile = argv[1];
|
||||
}
|
||||
|
||||
try {
|
||||
csp = getSudoku(sudokuFile.c_str());
|
||||
cout << "Sudoku to be solved:\n";
|
||||
printSudoku(csp);
|
||||
}
|
||||
|
||||
catch (char* msg) {
|
||||
cerr << "Exception: " << msg << endl;
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
bool changed = false;
|
||||
int steps = 1;
|
||||
vector< vector<int> > oldDomains(csp.getSize());
|
||||
|
||||
do {
|
||||
cout << "Solving ... step " << steps++ << endl;
|
||||
|
||||
for ( int i=0; i < csp.getSize(); i++ ) {
|
||||
oldDomains[i] = csp.getDomain(i);
|
||||
}
|
||||
|
||||
csp.refreshDomains();
|
||||
csp.assignUniqueDomains();
|
||||
|
||||
if (csp.hasUniqueSolution())
|
||||
break;
|
||||
|
||||
changed = false;
|
||||
|
||||
for ( int i=0; i < csp.getSize(); i++ ) {
|
||||
if (csp.getDomain(i).size() != oldDomains[i].size())
|
||||
changed = true;
|
||||
|
||||
for ( int j=0; j < csp.getDomain(i).size() && !changed; j++ ) {
|
||||
if ( csp.getDomain(i)[j] != oldDomains[i][j] )
|
||||
changed = true;
|
||||
}
|
||||
}
|
||||
} while (changed);
|
||||
|
||||
cout << endl;
|
||||
printSudoku(csp);
|
||||
|
||||
if (csp.isSatisfiable()) {
|
||||
cout << "This sudoku has a solution ";
|
||||
|
||||
if (csp.hasUniqueSolution())
|
||||
cout << "and the solution is unique\n";
|
||||
else
|
||||
cout << "but it wasn't possible to determine it univocally (missing values?)\n";
|
||||
} else
|
||||
cout << "This sudoku does not have any solution\n";
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
22
sudoku.txt
Normal file
22
sudoku.txt
Normal file
|
@ -0,0 +1,22 @@
|
|||
#
|
||||
# sudoku.txt - Sample easy sudoky that our program can understand
|
||||
# Place a zero to identify an unset cell (that, of course, should
|
||||
# be set by our smart program).
|
||||
#
|
||||
# by BlackLight
|
||||
#
|
||||
|
||||
+-------+-------+-------+
|
||||
| 6 0 8 | 0 0 0 | 9 0 4 |
|
||||
| 2 0 0 | 0 1 4 | 0 5 0 |
|
||||
| 0 0 7 | 9 8 3 | 0 0 0 |
|
||||
+-------+-------+-------+
|
||||
| 0 2 0 | 5 0 0 | 0 0 9 |
|
||||
| 0 3 9 | 4 0 8 | 5 1 0 |
|
||||
| 8 0 0 | 0 0 9 | 0 7 0 |
|
||||
+-------+-------+-------+
|
||||
| 0 0 0 | 3 9 2 | 7 0 0 |
|
||||
| 0 5 0 | 7 4 0 | 0 0 8 |
|
||||
| 9 0 4 | 0 0 0 | 3 0 6 |
|
||||
+-------+-------+-------+
|
||||
|
76
tags
76
tags
|
@ -4,13 +4,13 @@
|
|||
!_TAG_PROGRAM_NAME Exuberant Ctags //
|
||||
!_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/
|
||||
!_TAG_PROGRAM_VERSION 5.8 //
|
||||
A fourcolours.cpp 34;" d file:
|
||||
B fourcolours.cpp 39;" d file:
|
||||
A fourcolours.cpp /^ I, CH, DK, D, A, F, E, P, B, L, NL$/;" e enum:__anon1 file:
|
||||
B fourcolours.cpp /^ I, CH, DK, D, A, F, E, P, B, L, NL$/;" e enum:__anon1 file:
|
||||
CC Makefile /^CC = g++$/;" m
|
||||
CCFLAGS Makefile /^CCFLAGS = -O3 -g$/;" m
|
||||
CH fourcolours.cpp 33;" d file:
|
||||
COLOURS fourcolours.cpp 45;" d file:
|
||||
COUNTRIES fourcolours.cpp 44;" d file:
|
||||
CH fourcolours.cpp /^ I, CH, DK, D, A, F, E, P, B, L, NL$/;" e enum:__anon1 file:
|
||||
COLOURS fourcolours.cpp 50;" d file:
|
||||
COUNTRIES fourcolours.cpp 49;" d file:
|
||||
CSP csp++.cpp /^CSP<T>::CSP ( int n, T default_value, bool set_value, bool (*c)(std::vector< CSPvariable<T> >) )$/;" f class:CSP signature:( int n, T default_value, bool set_value, bool (*c)(std::vector< CSPvariable<T> >) )
|
||||
CSP csp++.cpp /^CSP<T>::CSP (int n, bool (*c)(vector< CSPvariable<T> >))$/;" f class:CSP signature:(int n, bool (*c)(vector< CSPvariable<T> >))
|
||||
CSP csp++.h /^ CSP ( int n, T default_value, bool set_variables = false, bool (*c)(std::vector< CSPvariable<T> >) = __default_constraint );$/;" p class:CSP access:public signature:( int n, T default_value, bool set_variables = false, bool (*c)(std::vector< CSPvariable<T> >) = __default_constraint )
|
||||
|
@ -34,10 +34,11 @@ CSP::appendConstraint csp++.h /^ void appendConstraint ( bool (*c)(std::vector<
|
|||
CSP::arc csp++.h /^ struct arc {$/;" s class:CSP access:private
|
||||
CSP::arc::value csp++.h /^ TT value[2];$/;" m struct:CSP::arc access:public
|
||||
CSP::arc::var csp++.h /^ CSPvariable<TT> var[2];$/;" m struct:CSP::arc access:public
|
||||
CSP::assignUniqueDomains csp++.cpp /^CSP<T>::assignUniqueDomains ( void )$/;" f class:CSP signature:( void )
|
||||
CSP::assignUniqueDomains csp++.h /^ void assignUniqueDomains ( void );$/;" p class:CSP access:public signature:( void )
|
||||
CSP::constraints csp++.h /^ std::vector< bool (*)(std::vector< CSPvariable<T> >) > constraints;$/;" m class:CSP access:private
|
||||
CSP::dropConstraint csp++.cpp /^CSP<T>::dropConstraint ( size_t index )$/;" f class:CSP signature:( size_t index )
|
||||
CSP::dropConstraint csp++.h /^ void dropConstraint ( size_t index );$/;" p class:CSP access:public signature:( size_t index )
|
||||
CSP::fixed csp++.h /^ std::vector<bool> fixed;$/;" m class:CSP access:private
|
||||
CSP::getDomain csp++.cpp /^CSP<T>::getDomain ( size_t index )$/;" f class:CSP signature:( size_t index )
|
||||
CSP::getDomain csp++.h /^ std::vector<T> getDomain ( size_t index );$/;" p class:CSP access:public signature:( size_t index )
|
||||
CSP::getSize csp++.cpp /^CSP<T>::getSize( void )$/;" f class:CSP signature:( void )
|
||||
|
@ -46,6 +47,8 @@ CSP::hasUniqueSolution csp++.cpp /^CSP<T>::hasUniqueSolution ( void )$/;" f clas
|
|||
CSP::hasUniqueSolution csp++.h /^ bool hasUniqueSolution ( void );$/;" p class:CSP access:public signature:( void )
|
||||
CSP::isSatisfiable csp++.cpp /^CSP<T>::isSatisfiable ( void )$/;" f class:CSP signature:( void )
|
||||
CSP::isSatisfiable csp++.h /^ bool isSatisfiable ( void );$/;" p class:CSP access:public signature:( void )
|
||||
CSP::isSet csp++.cpp /^CSP<T>::isSet ( size_t index )$/;" f class:CSP signature:( size_t index )
|
||||
CSP::isSet csp++.h /^ bool isSet ( size_t i );$/;" p class:CSP access:public signature:( size_t i )
|
||||
CSP::refreshDomains csp++.cpp /^CSP<T>::refreshDomains ( void )$/;" f class:CSP signature:( void )
|
||||
CSP::refreshDomains csp++.h /^ void refreshDomains( void );$/;" p class:CSP access:public signature:( void )
|
||||
CSP::restoreDomains csp++.cpp /^CSP<T>::restoreDomains ( void )$/;" f class:CSP signature:( void )
|
||||
|
@ -62,6 +65,8 @@ CSP::setValue csp++.cpp /^CSP<T>::setValue ( size_t index, T value )$/;" f class
|
|||
CSP::setValue csp++.h /^ void setValue ( size_t index, T value );$/;" p class:CSP access:public signature:( size_t index, T value )
|
||||
CSP::unsetValue csp++.cpp /^CSP<T>::unsetValue ( size_t index )$/;" f class:CSP signature:( size_t index )
|
||||
CSP::unsetValue csp++.h /^ void unsetValue ( size_t index );$/;" p class:CSP access:public signature:( size_t index )
|
||||
CSP::value csp++.cpp /^CSP<T>::value ( size_t index )$/;" f class:CSP signature:( size_t index )
|
||||
CSP::value csp++.h /^ T value ( size_t i );$/;" p class:CSP access:public signature:( size_t i )
|
||||
CSP::variables csp++.h /^ std::vector< CSPvariable<T> > variables;$/;" m class:CSP access:private
|
||||
CSPexception csp++.h /^ CSPexception (const char *m) {$/;" f class:CSPexception access:public signature:(const char *m)
|
||||
CSPexception csp++.h /^class CSPexception : public std::exception {$/;" c inherits:std::exception
|
||||
|
@ -79,25 +84,31 @@ Class Documentation doc/latex/refman.tex /^\\chapter{Class Documentation}$/;" c
|
|||
Class Index doc/latex/refman.tex /^\\chapter{Class Index}$/;" c
|
||||
Class List doc/latex/annotated.tex /^\\section{Class List}$/;" s
|
||||
Classes doc/latex/classCSP.tex /^\\subsection*{Classes}$/;" b
|
||||
Colour fourcolours.cpp /^} Colour;$/;" t typeref:enum:__anon2 file:
|
||||
Constructor Destructor Documentation doc/latex/classCSP.tex /^\\subsection{Constructor \\& Destructor Documentation}$/;" b
|
||||
D fourcolours.cpp 35;" d file:
|
||||
DK fourcolours.cpp 42;" d file:
|
||||
Country fourcolours.cpp /^} Country;$/;" t typeref:enum:__anon1 file:
|
||||
D fourcolours.cpp /^ I, CH, DK, D, A, F, E, P, B, L, NL$/;" e enum:__anon1 file:
|
||||
DEFAULT_SUDOKU_FILE sudoku.cpp 42;" d file:
|
||||
DK fourcolours.cpp /^ I, CH, DK, D, A, F, E, P, B, L, NL$/;" e enum:__anon1 file:
|
||||
Detailed Description doc/latex/classCSP.tex /^\\subsection{Detailed Description}$/;" b
|
||||
Detailed Description doc/latex/classCSPexception.tex /^\\subsection{Detailed Description}$/;" b
|
||||
E fourcolours.cpp 37;" d file:
|
||||
F fourcolours.cpp 36;" d file:
|
||||
E fourcolours.cpp /^ I, CH, DK, D, A, F, E, P, B, L, NL$/;" e enum:__anon1 file:
|
||||
F fourcolours.cpp /^ I, CH, DK, D, A, F, E, P, B, L, NL$/;" e enum:__anon1 file:
|
||||
FOURCOLOURS Makefile /^FOURCOLOURS = fourcolours$/;" m
|
||||
I fourcolours.cpp 32;" d file:
|
||||
HEIGHT sudoku.cpp 40;" d file:
|
||||
I fourcolours.cpp /^ I, CH, DK, D, A, F, E, P, B, L, NL$/;" e enum:__anon1 file:
|
||||
INCLUDES Makefile /^INCLUDES = -I.$/;" m
|
||||
L fourcolours.cpp 40;" d file:
|
||||
NL fourcolours.cpp 41;" d file:
|
||||
L fourcolours.cpp /^ I, CH, DK, D, A, F, E, P, B, L, NL$/;" e enum:__anon1 file:
|
||||
NL fourcolours.cpp /^ I, CH, DK, D, A, F, E, P, B, L, NL$/;" e enum:__anon1 file:
|
||||
NOVALUE sudoku.cpp 41;" d file:
|
||||
OBJ Makefile /^OBJ = $(SRC:.cpp=.o)$/;" m
|
||||
OUT Makefile /^OUT = libcsp++.a$/;" m
|
||||
P fourcolours.cpp 38;" d file:
|
||||
P fourcolours.cpp /^ I, CH, DK, D, A, F, E, P, B, L, NL$/;" e enum:__anon1 file:
|
||||
Public Attributes doc/latex/structCSPvariable.tex /^\\subsection*{Public Attributes}$/;" b
|
||||
Public Member Functions doc/latex/classCSP.tex /^\\subsection*{Public Member Functions}$/;" b
|
||||
Public Member Functions doc/latex/classCSPexception.tex /^\\subsection*{Public Member Functions}$/;" b
|
||||
SRC Makefile /^SRC = csp++.cpp csp++-impl.cpp$/;" m
|
||||
SRC Makefile /^SRC = csp++.cpp$/;" m
|
||||
SUDOKU Makefile /^SUDOKU = sudoku$/;" m
|
||||
SearchBox doc/html/search/search.js /^function SearchBox(name, resultsPath, inFrame, label)$/;" c
|
||||
SearchBox.Activate doc/html/search/search.js /^ this.Activate = function(isActive)$/;" m
|
||||
SearchBox.CloseResultsWindow doc/html/search/search.js /^ this.CloseResultsWindow = function()$/;" m
|
||||
|
@ -127,6 +138,7 @@ SearchResults.NavPrev doc/html/search/search.js /^ this.NavPrev = function(in
|
|||
SearchResults.ProcessKeys doc/html/search/search.js /^ this.ProcessKeys = function(e)$/;" m
|
||||
SearchResults.Search doc/html/search/search.js /^ this.Search = function(search)$/;" m
|
||||
SearchResults.Toggle doc/html/search/search.js /^ this.Toggle = function(id)$/;" m
|
||||
WIDTH sudoku.cpp 39;" d file:
|
||||
__CSPPP_H csp++.h 20;" d
|
||||
__default_constraint csp++.h /^ static bool __default_constraint ( std::vector< CSPvariable<T> > v ) { return true; }$/;" f class:CSP access:private signature:( std::vector< CSPvariable<T> > v )
|
||||
__default_domains csp++.h /^ std::vector< std::vector<T> > __default_domains;$/;" m class:CSP access:private
|
||||
|
@ -139,26 +151,30 @@ _details doc/html/classCSPexception.html /^<hr\/><a name="_details"><\/a><h2>Det
|
|||
appendConstraint csp++.cpp /^CSP<T>::appendConstraint ( bool (*c)(vector< CSPvariable<T> >))$/;" f class:CSP signature:( bool (c)vector< CSPvariable<T> >))
|
||||
appendConstraint csp++.h /^ void appendConstraint ( bool (*c)(std::vector< CSPvariable<T> >) );$/;" p class:CSP access:public signature:( bool (c)std::vector< CSPvariable<T> >) )
|
||||
arc csp++.h /^ struct arc {$/;" s class:CSP access:private
|
||||
blue fourcolours.cpp 29;" d file:
|
||||
colours fourcolours.cpp /^const char* colours[COLOURS] = {$/;" v
|
||||
assignUniqueDomains csp++.cpp /^CSP<T>::assignUniqueDomains ( void )$/;" f class:CSP signature:( void )
|
||||
assignUniqueDomains csp++.h /^ void assignUniqueDomains ( void );$/;" p class:CSP access:public signature:( void )
|
||||
blue fourcolours.cpp /^ red, green, blue, yellow$/;" e enum:__anon2 file:
|
||||
c fourcolours.cpp /^c ( std::vector< CSPvariable<Colour> > variables) {$/;" f signature:( std::vector< CSPvariable<Colour> > variables)
|
||||
cellsConstraint sudoku.cpp /^cellsConstraint ( std::vector< CSPvariable<int> > variables)$/;" f signature:( std::vector< CSPvariable<int> > variables)
|
||||
colours fourcolours.cpp /^static const char* colours[COLOURS] = {$/;" v file:
|
||||
colsConstraint sudoku.cpp /^colsConstraint ( std::vector< CSPvariable<int> > variables)$/;" f signature:( std::vector< CSPvariable<int> > variables)
|
||||
constraint csp++.h 66;" d
|
||||
constraint fourcolours.cpp /^constraint ( std::vector< CSPvariable<int> > variables) {$/;" f signature:( std::vector< CSPvariable<int> > variables)
|
||||
constraints csp++.h /^ std::vector< bool (*)(std::vector< CSPvariable<T> >) > constraints;$/;" m class:CSP access:private
|
||||
convertToId doc/html/search/search.js /^function convertToId(search)$/;" f
|
||||
countries fourcolours.cpp /^const char* countries[COUNTRIES] = {$/;" v
|
||||
countries fourcolours.cpp /^static const char* countries[COUNTRIES] = {$/;" v file:
|
||||
domain csp++.h /^ std::vector<T> domain;$/;" m struct:CSPvariable access:public
|
||||
dropConstraint csp++.cpp /^CSP<T>::dropConstraint ( size_t index )$/;" f class:CSP signature:( size_t index )
|
||||
dropConstraint csp++.h /^ void dropConstraint ( size_t index );$/;" p class:CSP access:public signature:( size_t index )
|
||||
fixed csp++.h /^ bool fixed;$/;" m struct:CSPvariable access:public
|
||||
fixed csp++.h /^ std::vector<bool> fixed;$/;" m class:CSP access:private
|
||||
getDomain csp++.cpp /^CSP<T>::getDomain ( size_t index )$/;" f class:CSP signature:( size_t index )
|
||||
getDomain csp++.h /^ std::vector<T> getDomain ( size_t index );$/;" p class:CSP access:public signature:( size_t index )
|
||||
getIndexByColour fourcolours.cpp /^getIndexByColour ( const char* colour )$/;" f signature:( const char* colour )
|
||||
getSize csp++.cpp /^CSP<T>::getSize( void )$/;" f class:CSP signature:( void )
|
||||
getSize csp++.h /^ size_t getSize ( void );$/;" p class:CSP access:public signature:( void )
|
||||
getSudoku sudoku.cpp /^getSudoku (CSP<int>& csp, const char* sudokuFile)$/;" f signature:(CSP<int>& csp, const char* sudokuFile)
|
||||
getXPos doc/html/search/search.js /^function getXPos(item)$/;" f
|
||||
getYPos doc/html/search/search.js /^function getYPos(item)$/;" f
|
||||
green fourcolours.cpp 28;" d file:
|
||||
green fourcolours.cpp /^ red, green, blue, yellow$/;" e enum:__anon2 file:
|
||||
hasUniqueSolution csp++.cpp /^CSP<T>::hasUniqueSolution ( void )$/;" f class:CSP signature:( void )
|
||||
hasUniqueSolution csp++.h /^ bool hasUniqueSolution ( void );$/;" p class:CSP access:public signature:( void )
|
||||
index csp++.h /^ int index;$/;" m struct:CSPvariable access:public
|
||||
|
@ -170,6 +186,8 @@ indexSectionsWithContent.1 doc/html/search/search.js /^ 1: "0000000000000000000
|
|||
indexSectionsWithContent.2 doc/html/search/search.js /^ 2: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101100111000000001101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"$/;" p
|
||||
isSatisfiable csp++.cpp /^CSP<T>::isSatisfiable ( void )$/;" f class:CSP signature:( void )
|
||||
isSatisfiable csp++.h /^ bool isSatisfiable ( void );$/;" p class:CSP access:public signature:( void )
|
||||
isSet csp++.cpp /^CSP<T>::isSet ( size_t index )$/;" f class:CSP signature:( size_t index )
|
||||
isSet csp++.h /^ bool isSet ( size_t i );$/;" p class:CSP access:public signature:( size_t i )
|
||||
l00001 doc/html/csp_09_09_8h_source.html /^<h1>csp++.h<\/h1><div class="fragment"><pre class="fragment"><a name="l00001"><\/a>00001 <span class="comment">\/*<\/span>$/;" a
|
||||
l00002 doc/html/csp_09_09_8h_source.html /^<a name="l00002"><\/a>00002 <span class="comment"> * =====================================================================================<\/span>$/;" a
|
||||
l00003 doc/html/csp_09_09_8h_source.html /^<a name="l00003"><\/a>00003 <span class="comment"> *<\/span>$/;" a
|
||||
|
@ -268,14 +286,17 @@ l00200 doc/html/csp_09_09_8h_source.html /^<a name="l00200"><\/a>00200 $/;" a
|
|||
latex_count doc/latex/Makefile /^ latex_count=5 ; \\$/;" m
|
||||
letter_C doc/html/classes.html /^<tr><td><a name="letter_C"><\/a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah"> C <\/div><\/td><\/tr><\/table>$/;" a
|
||||
main fourcolours.cpp /^main ( int argc, char *argv[] )$/;" f signature:( int argc, char *argv[] )
|
||||
main sudoku.cpp /^main ( int argc, char *argv[] )$/;" f signature:( int argc, char *argv[] )
|
||||
message csp++.h /^ const char* message;$/;" m class:CSPexception access:private
|
||||
printDomain fourcolours.cpp /^printDomain (CSP<int> csp, int variable)$/;" f signature:(CSP<int> csp, int variable)
|
||||
printDomains fourcolours.cpp /^printDomains (CSP<int> csp)$/;" f signature:(CSP<int> csp)
|
||||
red fourcolours.cpp 27;" d file:
|
||||
printDomain fourcolours.cpp /^printDomain (CSP<Colour> csp, int variable)$/;" f signature:(CSP<Colour> csp, int variable)
|
||||
printDomains fourcolours.cpp /^printDomains (CSP<Colour> csp)$/;" f signature:(CSP<Colour> csp)
|
||||
printSudoku sudoku.cpp /^printSudoku (CSP<int> csp)$/;" f signature:(CSP<int> csp)
|
||||
red fourcolours.cpp /^ red, green, blue, yellow$/;" e enum:__anon2 file:
|
||||
refreshDomains csp++.cpp /^CSP<T>::refreshDomains ( void )$/;" f class:CSP signature:( void )
|
||||
refreshDomains csp++.h /^ void refreshDomains( void );$/;" p class:CSP access:public signature:( void )
|
||||
restoreDomains csp++.cpp /^CSP<T>::restoreDomains ( void )$/;" f class:CSP signature:( void )
|
||||
restoreDomains csp++.h /^ void restoreDomains ( void );$/;" p class:CSP access:private signature:( void )
|
||||
rowsConstraint sudoku.cpp /^rowsConstraint ( std::vector< CSPvariable<int> > variables)$/;" f signature:( std::vector< CSPvariable<int> > variables)
|
||||
setConstraint csp++.cpp /^CSP<T>::setConstraint ( bool (*c)(vector< CSPvariable<T> >))$/;" f class:CSP signature:( bool (c)vector< CSPvariable<T> >))
|
||||
setConstraint csp++.cpp /^CSP<T>::setConstraint ( std::vector< bool(*)(std::vector< CSPvariable<T> >) > c )$/;" f class:CSP signature:( std::vector< bool(*)(std::vector< CSPvariable<T> >) > c )
|
||||
setConstraint csp++.h /^ void setConstraint ( bool (*c)(std::vector< CSPvariable<T> >) );$/;" p class:CSP access:public signature:( bool (c)std::vector< CSPvariable<T> >) )
|
||||
|
@ -288,13 +309,16 @@ setValue csp++.cpp /^CSP<T>::setValue ( size_t index, T value )$/;" f class:CSP
|
|||
setValue csp++.h /^ void setValue ( size_t index, T value );$/;" p class:CSP access:public signature:( size_t index, T value )
|
||||
template$ $class T$ $ class CSP$ $ T $ $ doc/latex/classCSP.tex /^\\subsubsection*{template$<$class T$>$ class CSP$<$ T $>$}$/;" b
|
||||
template$ $class T$ $ struct CSPvariable$ $ T $ $ doc/latex/structCSPvariable.tex /^\\subsubsection*{template$<$class T$>$ struct CSPvariable$<$ T $>$}$/;" b
|
||||
toID sudoku.cpp /^toID (int i, int j)$/;" f signature:(int i, int j)
|
||||
unsetValue csp++.cpp /^CSP<T>::unsetValue ( size_t index )$/;" f class:CSP signature:( size_t index )
|
||||
unsetValue csp++.h /^ void unsetValue ( size_t index );$/;" p class:CSP access:public signature:( size_t index )
|
||||
usage doc/html/installdox /^sub usage {$/;" s
|
||||
value csp++.cpp /^CSP<T>::value ( size_t index )$/;" f class:CSP signature:( size_t index )
|
||||
value csp++.h /^ TT value[2];$/;" m struct:CSP::arc access:public
|
||||
value csp++.h /^ T value ( size_t i );$/;" p class:CSP access:public signature:( size_t i )
|
||||
value csp++.h /^ T value;$/;" m struct:CSPvariable access:public
|
||||
valueOK fourcolours.cpp /^valueOK ( CSP<int> csp, size_t variable, int value ) {$/;" f signature:( CSP<int> csp, size_t variable, int value )
|
||||
valueOK fourcolours.cpp /^valueOK ( CSP<Colour> csp, size_t variable, Colour value ) {$/;" f signature:( CSP<Colour> csp, size_t variable, Colour value )
|
||||
var csp++.h /^ CSPvariable<TT> var[2];$/;" m struct:CSP::arc access:public
|
||||
variables csp++.h /^ std::vector< CSPvariable<T> > variables;$/;" m class:CSP access:private
|
||||
what csp++.h /^ virtual const char* what() {$/;" f class:CSPexception access:public signature:()
|
||||
yellow fourcolours.cpp 30;" d file:
|
||||
yellow fourcolours.cpp /^ red, green, blue, yellow$/;" e enum:__anon2 file:
|
||||
|
|
Loading…
Reference in a new issue