mirror of
https://github.com/BlackLight/libCSP--.git
synced 2024-12-28 03:25:12 +01:00
Bringing libCSP++ to GitHub
This commit is contained in:
commit
d5a74ba34d
57 changed files with 7275 additions and 0 deletions
31
Makefile
Normal file
31
Makefile
Normal file
|
@ -0,0 +1,31 @@
|
|||
SRC = csp++.cpp
|
||||
OBJ = $(SRC:.cpp=.o)
|
||||
OUT = libcsp++.a
|
||||
INCLUDES = -I.
|
||||
CCFLAGS = -O3 -g
|
||||
CC = g++
|
||||
FOURCOLOURS = fourcolours
|
||||
|
||||
.SUFFIXES: .cpp
|
||||
|
||||
.cpp.o:
|
||||
$(CC) $(INCLUDES) $(CCFLAGS) -c $< -o $@
|
||||
|
||||
$(OUT): $(OBJ)
|
||||
ar rcs $(OUT) $(OBJ)
|
||||
|
||||
depend: dep
|
||||
|
||||
dep:
|
||||
makedepend -- $(CFLAGS) -- $(INCLUDES) $(SRC)
|
||||
|
||||
clean:
|
||||
rm -f $(OBJ) $(OUT) $(EXAMPLE)
|
||||
|
||||
fourcolours:
|
||||
$(CC) $(INCLUDES) $(CCFLAGS) -o $(FOURCOLOURS) $(FOURCOLOURS).cpp $(OUT)
|
||||
|
||||
examples: fourcolours
|
||||
|
||||
clean-examples:
|
||||
rm ${FOURCOLOURS}
|
276
csp++.cpp
Normal file
276
csp++.cpp
Normal file
|
@ -0,0 +1,276 @@
|
|||
/*
|
||||
* =====================================================================================
|
||||
*
|
||||
* Filename: csp++.cpp
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* Version: 1.0
|
||||
* Created: 17/05/2010 09:17:13
|
||||
* Revision: none
|
||||
* Compiler: gcc
|
||||
*
|
||||
* Author: BlackLight (http://0x00.ath.cx), <blacklight@autistici.org>
|
||||
* Company: lulz
|
||||
*
|
||||
* =====================================================================================
|
||||
*/
|
||||
|
||||
|
||||
#include <iostream>
|
||||
#include <algorithm>
|
||||
#include "csp++.h"
|
||||
using namespace std;
|
||||
// using std::vector;
|
||||
|
||||
|
||||
template<class T>
|
||||
void
|
||||
CSP<T>::__init (int n, bool (*c)(vector< CSPvariable<T> >))
|
||||
{
|
||||
variables = vector< CSPvariable<T> >(n);
|
||||
fixed = vector<bool>(n);
|
||||
__default_domains = vector< vector<T> >(n);
|
||||
|
||||
for (size_t i=0; i < variables.size(); i++) {
|
||||
variables[i].index = i;
|
||||
variables[i].fixed = false;
|
||||
// TODO Remove this line
|
||||
fixed[i] = 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;
|
||||
// TODO Remove this line
|
||||
fixed[i] = 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++) {
|
||||
for (size_t i=0; i < x->domain.size(); i++) {
|
||||
if ( x->fixed ) {
|
||||
// TODO Remove this line
|
||||
// if ( fixed[ x - variables.begin() ] ) {
|
||||
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 ) {
|
||||
// TODO Remove this line
|
||||
// if ( fixed[ y - variables.begin() ] ) {
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
// TODO Remove this line
|
||||
// fixed[index] = 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;
|
||||
// TODO Remove this line
|
||||
// fixed[index] = 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;
|
||||
}
|
||||
|
206
csp++.h
Normal file
206
csp++.h
Normal file
|
@ -0,0 +1,206 @@
|
|||
/*
|
||||
* =====================================================================================
|
||||
*
|
||||
* Filename: csp++.h
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* Version: 1.0
|
||||
* Created: 16/05/2010 23:16:42
|
||||
* Revision: none
|
||||
* Compiler: gcc
|
||||
*
|
||||
* Author: BlackLight (http://0x00.ath.cx), <blacklight@autistici.org>
|
||||
* Company: lulz
|
||||
*
|
||||
* =====================================================================================
|
||||
*/
|
||||
|
||||
#ifndef __CSPPP_H
|
||||
#define __CSPPP_H
|
||||
|
||||
#include <vector>
|
||||
#include <exception>
|
||||
|
||||
template<class T>
|
||||
struct CSPvariable {
|
||||
int index;
|
||||
bool fixed;
|
||||
T value;
|
||||
std::vector<T> domain;
|
||||
};
|
||||
|
||||
/**
|
||||
* \class CSPexception csp++.h
|
||||
* \brief Class for managing exception in CSP
|
||||
*/
|
||||
class CSPexception : public std::exception {
|
||||
const char* message;
|
||||
|
||||
public:
|
||||
CSPexception (const char *m) {
|
||||
message = m;
|
||||
}
|
||||
|
||||
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<bool> fixed;
|
||||
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 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 );
|
||||
|
||||
/**
|
||||
* METHOD: setDomain
|
||||
* \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 );
|
||||
|
||||
/**
|
||||
* METHOD: setDomain
|
||||
* \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 );
|
||||
|
||||
/**
|
||||
* METHOD: setConstraint
|
||||
* \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> >) );
|
||||
|
||||
/**
|
||||
* METHOD: setConstraint
|
||||
* \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 );
|
||||
|
||||
/**
|
||||
* METHOD: dropConstraint
|
||||
* \brief Drops a constraint from the CSP
|
||||
* \param index Index of the constraint to be dropped
|
||||
*/
|
||||
void dropConstraint ( size_t index );
|
||||
|
||||
/**
|
||||
* METHOD: appendConstraint
|
||||
* \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> >) );
|
||||
|
||||
/**
|
||||
* METHOD: refreshDomains
|
||||
* \brief Updates the domains of the variables. Any constraint or node fixed value is applied
|
||||
*/
|
||||
void refreshDomains( void );
|
||||
|
||||
/**
|
||||
* METHOD: getDomain
|
||||
* \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 );
|
||||
|
||||
/**
|
||||
* METHOD: getSize
|
||||
* \brief Get the number of variables in the current CSP
|
||||
* \return Size of the CSP
|
||||
*/
|
||||
size_t getSize ( void );
|
||||
|
||||
/**
|
||||
* METHOD: setValue
|
||||
* \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 );
|
||||
|
||||
/**
|
||||
* METHOD: unsetValue
|
||||
* \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 );
|
||||
|
||||
/**
|
||||
* METHOD: isSatisfiable
|
||||
* \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 );
|
||||
|
||||
|
||||
/**
|
||||
* METHOD: hasUniqueSolution
|
||||
* \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 );
|
||||
};
|
||||
|
||||
#endif
|
||||
|
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"></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></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 Tue May 18 19:03:23 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>
|
81
doc/html/classCSP-members.html
Normal file
81
doc/html/classCSP-members.html
Normal file
|
@ -0,0 +1,81 @@
|
|||
<!-- 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#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#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>
|
||||
</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></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 Tue May 18 19:03:23 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>
|
602
doc/html/classCSP.html
Normal file
602
doc/html/classCSP.html
Normal file
|
@ -0,0 +1,602 @@
|
|||
<!-- 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"> </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">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. <a href="#a466845256e638c5e258fd728b641359f"></a><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>
|
||||
</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>
|
||||
<p>METHOD: appendConstraint </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>
|
||||
<p>METHOD: dropConstraint </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>
|
||||
<p>METHOD: getDomain </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>
|
||||
<p>METHOD: getSize </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>
|
||||
<p>FUNCTION: hasUniqueSolution </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>
|
||||
<p>METHOD: isSatisfiable </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="a466845256e638c5e258fd728b641359f"></a><!-- doxytag: member="CSP::refreshDomains" ref="a466845256e638c5e258fd728b641359f" args="(void)" -->
|
||||
<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 >::refreshDomains </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>Updates the domains of the variables. Any constraint or node fixed value is applied. </p>
|
||||
<p>METHOD: refreshDomains </p>
|
||||
|
||||
</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>
|
||||
<p>METHOD: setConstraint </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>
|
||||
<p>METHOD: setConstraint </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>
|
||||
<p>METHOD: setDomain </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>
|
||||
<p>METHOD: setDomain </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>
|
||||
<p>METHOD: setValue </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>
|
||||
<p>METHOD: unsetValue </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>
|
||||
<hr/>The documentation for this class was generated from the following files:<ul>
|
||||
<li><a class="el" href="csp_09_09_8h_source.html">csp++.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></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 Tue May 18 19:03:23 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 bgcolor="#f0f0f0"><td><b>CSPexception</b>(const char *m) (defined in <a class="el" href="classCSPexception.html">CSPexception</a>)</td><td><a class="el" href="classCSPexception.html">CSPexception</a></td><td><code> [inline]</code></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td><b>what</b>() (defined in <a class="el" href="classCSPexception.html">CSPexception</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></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 Tue May 18 19:03:23 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>
|
84
doc/html/classCSPexception.html
Normal file
84
doc/html/classCSPexception.html
Normal file
|
@ -0,0 +1,84 @@
|
|||
<!-- 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"><a class="anchor" id="a810bcfbb11d2e35d7b95f1e2b11b408c"></a><!-- doxytag: member="CSPexception::CSPexception" ref="a810bcfbb11d2e35d7b95f1e2b11b408c" args="(const char *m)" -->
|
||||
</td><td class="memItemRight" valign="bottom"><b>CSPexception</b> (const char *m)</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"><b>what</b> ()</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/>The documentation for this class was generated from the following file:<ul>
|
||||
<li><a class="el" href="csp_09_09_8h_source.html">csp++.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></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 Tue May 18 19:03:23 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></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 Tue May 18 19:03:23 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>
|
157
doc/html/csp_09_09_8h_source.html
Normal file
157
doc/html/csp_09_09_8h_source.html
Normal file
|
@ -0,0 +1,157 @@
|
|||
<!-- 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: 16/05/2010 23:16:42</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="preprocessor">#include <vector></span>
|
||||
<a name="l00020"></a>00020 <span class="preprocessor">#include <exception></span>
|
||||
<a name="l00021"></a>00021
|
||||
<a name="l00022"></a>00022 <span class="keyword">template</span><<span class="keyword">class</span> T>
|
||||
<a name="l00023"></a><a class="code" href="structCSPvariable.html">00023</a> <span class="keyword">struct </span><a class="code" href="structCSPvariable.html">CSPvariable</a> {
|
||||
<a name="l00024"></a>00024 <span class="keywordtype">int</span> index;
|
||||
<a name="l00025"></a>00025 T value;
|
||||
<a name="l00026"></a>00026 std::vector<T> domain;
|
||||
<a name="l00027"></a>00027 };
|
||||
<a name="l00028"></a>00028
|
||||
<a name="l00033"></a><a class="code" href="classCSPexception.html">00033</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="l00034"></a>00034 <span class="keyword">const</span> <span class="keywordtype">char</span>* message;
|
||||
<a name="l00035"></a>00035
|
||||
<a name="l00036"></a>00036 <span class="keyword">public</span>:
|
||||
<a name="l00037"></a>00037 <a class="code" href="classCSPexception.html" title="Class for managing exception in CSP.">CSPexception</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> *m) {
|
||||
<a name="l00038"></a>00038 message = m;
|
||||
<a name="l00039"></a>00039 }
|
||||
<a name="l00040"></a>00040
|
||||
<a name="l00041"></a>00041 <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* what() {
|
||||
<a name="l00042"></a>00042 <span class="keywordflow">return</span> message;
|
||||
<a name="l00043"></a>00043 }
|
||||
<a name="l00044"></a>00044 };
|
||||
<a name="l00045"></a>00045
|
||||
<a name="l00050"></a>00050 <span class="keyword">template</span><<span class="keyword">class</span> T>
|
||||
<a name="l00051"></a><a class="code" href="classCSP.html">00051</a> <span class="keyword">class </span><a class="code" href="classCSP.html" title="Main class for managing a CSP.">CSP</a> {
|
||||
<a name="l00052"></a>00052 <span class="keyword">private</span>:
|
||||
<a name="l00053"></a>00053 <span class="keyword">template</span><<span class="keyword">class</span> TT>
|
||||
<a name="l00054"></a>00054 <span class="keyword">struct </span>arc {
|
||||
<a name="l00055"></a>00055 <a class="code" href="structCSPvariable.html">CSPvariable<TT></a> var[2];
|
||||
<a name="l00056"></a>00056 TT value[2];
|
||||
<a name="l00057"></a>00057 };
|
||||
<a name="l00058"></a>00058
|
||||
<a name="l00059"></a>00059 std::vector<bool> fixed;
|
||||
<a name="l00060"></a>00060 std::vector< CSPvariable<T> > variables;
|
||||
<a name="l00061"></a>00061 std::vector< bool (*)(std::vector< CSPvariable<T> >) > constraints;
|
||||
<a name="l00062"></a>00062 <span class="preprocessor"> #define constraint constraints[0]</span>
|
||||
<a name="l00063"></a>00063 <span class="preprocessor"></span>
|
||||
<a name="l00064"></a>00064 std::vector< std::vector<T> > __default_domains;
|
||||
<a name="l00065"></a>00065 T __default_value;
|
||||
<a name="l00066"></a>00066 <span class="keywordtype">bool</span> __has_default_value;
|
||||
<a name="l00067"></a>00067 <span class="keyword">static</span> <span class="keywordtype">bool</span> __default_constraint ( std::vector< <a class="code" href="structCSPvariable.html">CSPvariable<T></a> > v ) { <span class="keywordflow">return</span> <span class="keyword">true</span>; }
|
||||
<a name="l00068"></a>00068 <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">CSPvariable<T></a> >) );
|
||||
<a name="l00069"></a>00069 <span class="keywordtype">void</span> restoreDomains ( <span class="keywordtype">void</span> );
|
||||
<a name="l00070"></a>00070
|
||||
<a name="l00071"></a>00071 <span class="keyword">public</span>:
|
||||
<a name="l00081"></a>00081 <a class="code" href="classCSP.html#ad49548121582cc2d59e0d7f100092b75" title="Class constructor.">CSP</a> ( <span class="keywordtype">int</span> n, <span class="keywordtype">bool</span> (*c)(std::vector< <a class="code" href="structCSPvariable.html">CSPvariable<T></a> >) = __default_constraint );
|
||||
<a name="l00082"></a>00082
|
||||
<a name="l00096"></a>00096 <a class="code" href="classCSP.html#ad49548121582cc2d59e0d7f100092b75" title="Class constructor.">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">CSPvariable<T></a> >) = __default_constraint );
|
||||
<a name="l00097"></a>00097
|
||||
<a name="l00104"></a>00104 <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="l00105"></a>00105
|
||||
<a name="l00113"></a>00113 <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="l00114"></a>00114
|
||||
<a name="l00120"></a>00120 <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">CSPvariable<T></a> >) );
|
||||
<a name="l00121"></a>00121
|
||||
<a name="l00128"></a>00128 <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">CSPvariable<T></a> >) > c );
|
||||
<a name="l00129"></a>00129
|
||||
<a name="l00135"></a>00135 <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="l00136"></a>00136
|
||||
<a name="l00142"></a>00142 <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">CSPvariable<T></a> >) );
|
||||
<a name="l00143"></a>00143
|
||||
<a name="l00148"></a>00148 <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="l00149"></a>00149
|
||||
<a name="l00156"></a>00156 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="l00157"></a>00157
|
||||
<a name="l00163"></a>00163 <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="l00164"></a>00164
|
||||
<a name="l00171"></a>00171 <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 value );
|
||||
<a name="l00172"></a>00172
|
||||
<a name="l00181"></a>00181 <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="l00182"></a>00182
|
||||
<a name="l00188"></a>00188 <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="l00189"></a>00189
|
||||
<a name="l00190"></a>00190
|
||||
<a name="l00198"></a>00198 <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="l00199"></a>00199 };
|
||||
<a name="l00200"></a>00200
|
||||
</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></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 Tue May 18 19:03:23 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 |
67
doc/html/files.html
Normal file
67
doc/html/files.html
Normal file
|
@ -0,0 +1,67 @@
|
|||
<!-- 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++.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></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 Tue May 18 19:03:23 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>
|
109
doc/html/functions.html
Normal file
109
doc/html/functions.html
Normal file
|
@ -0,0 +1,109 @@
|
|||
<!-- 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>
|
||||
</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>CSP()
|
||||
: <a class="el" href="classCSP.html#ad49548121582cc2d59e0d7f100092b75">CSP< T ></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>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>
|
||||
</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></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 Tue May 18 19:03:23 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>
|
109
doc/html/functions_func.html
Normal file
109
doc/html/functions_func.html
Normal file
|
@ -0,0 +1,109 @@
|
|||
<!-- 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>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<ul>
|
||||
<li>appendConstraint()
|
||||
: <a class="el" href="classCSP.html#a8dc6aec6ca7e40d198e58b0ec14fee66">CSP< T ></a>
|
||||
</li>
|
||||
<li>CSP()
|
||||
: <a class="el" href="classCSP.html#ad49548121582cc2d59e0d7f100092b75">CSP< T ></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>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>
|
||||
</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></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 Tue May 18 19:03:23 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></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 Tue May 18 19:03:23 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;
|
||||
}
|
26
doc/html/search/all_61.html
Normal file
26
doc/html/search/all_61.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_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="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>
|
45
doc/html/search/all_63.html
Normal file
45
doc/html/search/all_63.html
Normal file
|
@ -0,0 +1,45 @@
|
|||
<!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#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" 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>
|
26
doc/html/search/all_64.html
Normal file
26
doc/html/search/all_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/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>
|
26
doc/html/search/all_69.html
Normal file
26
doc/html/search/all_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_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="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>
|
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 |
26
doc/html/search/functions_61.html
Normal file
26
doc/html/search/functions_61.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_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="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/functions_63.html
Normal file
29
doc/html/search/functions_63.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_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#ad49548121582cc2d59e0d7f100092b75" target="_parent">CSP::CSP(int n, bool(*c)(std::vector< CSPvariable< T > >)=__default_constraint)</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#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="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>
|
26
doc/html/search/functions_69.html
Normal file
26
doc/html/search/functions_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_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="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>
|
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;
|
||||
}
|
||||
|
730
doc/html/search/search.js
Normal file
730
doc/html/search/search.js
Normal file
|
@ -0,0 +1,730 @@
|
|||
// 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: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101100111000000001101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
1: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
2: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101100111000000001101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
};
|
||||
|
||||
var indexSectionNames =
|
||||
{
|
||||
0: "all",
|
||||
1: "classes",
|
||||
2: "functions"
|
||||
};
|
||||
|
||||
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 |
69
doc/html/structCSPvariable-members.html
Normal file
69
doc/html/structCSPvariable-members.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++: 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 bgcolor="#f0f0f0"><td><b>domain</b> (defined in <a class="el" href="structCSPvariable.html">CSPvariable< T ></a>)</td><td><a class="el" href="structCSPvariable.html">CSPvariable< T ></a></td><td></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td><b>index</b> (defined in <a class="el" href="structCSPvariable.html">CSPvariable< T ></a>)</td><td><a class="el" href="structCSPvariable.html">CSPvariable< T ></a></td><td></td></tr>
|
||||
<tr bgcolor="#f0f0f0"><td><b>value</b> (defined in <a class="el" href="structCSPvariable.html">CSPvariable< T ></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></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 Tue May 18 19:03:23 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>
|
82
doc/html/structCSPvariable.html
Normal file
82
doc/html/structCSPvariable.html
Normal file
|
@ -0,0 +1,82 @@
|
|||
<!-- 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><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"><b>index</b></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"><b>value</b></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"><b>domain</b></td></tr>
|
||||
</table>
|
||||
<h3>template<class T><br/>
|
||||
struct CSPvariable< T ></h3>
|
||||
|
||||
<hr/>The documentation for this struct was generated from the following file:<ul>
|
||||
<li><a class="el" href="csp_09_09_8h_source.html">csp++.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></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 Tue May 18 19:03:23 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 $>$} }{\pageref{structCSPvariable}}{}
|
||||
\end{DoxyCompactList}
|
248
doc/latex/classCSP.tex
Normal file
248
doc/latex/classCSP.tex
Normal file
|
@ -0,0 +1,248 @@
|
|||
\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
|
||||
\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
|
||||
void \hyperlink{classCSP_a466845256e638c5e258fd728b641359f}{refreshDomains} (void)
|
||||
\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}\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}.
|
||||
|
||||
METHOD: appendConstraint
|
||||
\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}.
|
||||
|
||||
METHOD: dropConstraint
|
||||
\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.
|
||||
|
||||
METHOD: getDomain
|
||||
\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}.
|
||||
|
||||
METHOD: getSize \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.
|
||||
|
||||
FUNCTION: hasUniqueSolution \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.
|
||||
|
||||
METHOD: isSatisfiable \begin{DoxyReturn}{Returns}
|
||||
true if the \hyperlink{classCSP}{CSP} has at least a possible solution, false otherwise
|
||||
\end{DoxyReturn}
|
||||
\hypertarget{classCSP_a466845256e638c5e258fd728b641359f}{
|
||||
\index{CSP@{CSP}!refreshDomains@{refreshDomains}}
|
||||
\index{refreshDomains@{refreshDomains}!CSP@{CSP}}
|
||||
\subsubsection[{refreshDomains}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ void {\bf CSP}$<$ T $>$::refreshDomains (void)\hspace{0.3cm}{\ttfamily \mbox{[}inline\mbox{]}}}}
|
||||
\label{classCSP_a466845256e638c5e258fd728b641359f}
|
||||
|
||||
|
||||
Updates the domains of the variables. Any constraint or node fixed value is applied.
|
||||
|
||||
METHOD: refreshDomains \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.
|
||||
|
||||
METHOD: setConstraint
|
||||
\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.
|
||||
|
||||
METHOD: setConstraint
|
||||
\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.
|
||||
|
||||
METHOD: setDomain
|
||||
\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.
|
||||
|
||||
METHOD: setDomain
|
||||
\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.
|
||||
|
||||
METHOD: setValue
|
||||
\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.
|
||||
|
||||
METHOD: unsetValue
|
||||
\begin{DoxyParams}{Parameters}
|
||||
\item[{\em index}]Index of the variable to be unset \end{DoxyParams}
|
||||
|
||||
|
||||
The documentation for this class was generated from the following files:\begin{DoxyCompactItemize}
|
||||
\item
|
||||
csp++.h\item
|
||||
csp++.cpp\end{DoxyCompactItemize}
|
34
doc/latex/classCSPexception.tex
Normal file
34
doc/latex/classCSPexception.tex
Normal file
|
@ -0,0 +1,34 @@
|
|||
\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
|
||||
\hypertarget{classCSPexception_a810bcfbb11d2e35d7b95f1e2b11b408c}{
|
||||
{\bfseries CSPexception} (const char $\ast$m)}
|
||||
\label{classCSPexception_a810bcfbb11d2e35d7b95f1e2b11b408c}
|
||||
|
||||
\item
|
||||
\hypertarget{classCSPexception_a7013e90a6c26ba4c15bc6fbc42be02ef}{
|
||||
virtual const char $\ast$ {\bfseries what} ()}
|
||||
\label{classCSPexception_a7013e90a6c26ba4c15bc6fbc42be02ef}
|
||||
|
||||
\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\subsection{Detailed Description}
|
||||
Class for managing exception in \hyperlink{classCSP}{CSP}.
|
||||
|
||||
The documentation for this class was generated from the following file:\begin{DoxyCompactItemize}
|
||||
\item
|
||||
csp++.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 Tue May 18 19:03:23 2010 for libCSP++ by Doxygen }]{}
|
||||
\lfoot[]{\fancyplain{}{\bfseries\scriptsize%
|
||||
Generated on Tue May 18 19:03:23 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 Tue May 18 19:03:23 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}
|
29
doc/latex/structCSPvariable.tex
Normal file
29
doc/latex/structCSPvariable.tex
Normal file
|
@ -0,0 +1,29 @@
|
|||
\hypertarget{structCSPvariable}{
|
||||
\section{CSPvariable$<$ T $>$ Struct Template Reference}
|
||||
\label{structCSPvariable}\index{CSPvariable@{CSPvariable}}
|
||||
}
|
||||
\subsection*{Public Attributes}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
\hypertarget{structCSPvariable_a1fb7622b0576133aa9a2445da22fddac}{
|
||||
int {\bfseries index}}
|
||||
\label{structCSPvariable_a1fb7622b0576133aa9a2445da22fddac}
|
||||
|
||||
\item
|
||||
\hypertarget{structCSPvariable_acc2ff31b449351f04b1c3a2a096e584c}{
|
||||
T {\bfseries value}}
|
||||
\label{structCSPvariable_acc2ff31b449351f04b1c3a2a096e584c}
|
||||
|
||||
\item
|
||||
\hypertarget{structCSPvariable_a66cf86ebf0fbbf8e571d7b585c9528a2}{
|
||||
std::vector$<$ T $>$ {\bfseries domain}}
|
||||
\label{structCSPvariable_a66cf86ebf0fbbf8e571d7b585c9528a2}
|
||||
|
||||
\end{DoxyCompactItemize}
|
||||
\subsubsection*{template$<$class T$>$ struct CSPvariable$<$ T $>$}
|
||||
|
||||
|
||||
|
||||
The documentation for this struct was generated from the following file:\begin{DoxyCompactItemize}
|
||||
\item
|
||||
csp++.h\end{DoxyCompactItemize}
|
252
fourcolours.cpp
Normal file
252
fourcolours.cpp
Normal file
|
@ -0,0 +1,252 @@
|
|||
/*
|
||||
* =====================================================================================
|
||||
*
|
||||
* Filename: main.cpp
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* Version: 1.0
|
||||
* Created: 17/05/2010 09:22:25
|
||||
* Revision: none
|
||||
* Compiler: gcc
|
||||
*
|
||||
* Author: BlackLight (http://0x00.ath.cx), <blacklight@autistici.org>
|
||||
* Company: lulz
|
||||
*
|
||||
* =====================================================================================
|
||||
*/
|
||||
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#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"
|
||||
|
||||
using namespace std;
|
||||
|
||||
typedef enum {
|
||||
I, CH, A, D, F, E, P, B, L, NL, DK
|
||||
} 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"
|
||||
};
|
||||
|
||||
static const char* colours[COLOURS] = {
|
||||
"red", "green", "blue", "yellow"
|
||||
};
|
||||
|
||||
/**
|
||||
* FUNCTION: c
|
||||
*
|
||||
* Constraint function, it expresses the logic of the constraint. In our case,
|
||||
* the adjoining countries must have different colours. Each colours condition
|
||||
* is verified only if both the values have been set ("fixed" field in CSPvariable
|
||||
* structure), in our case by the user, in order to avoid an inconstistent CSP
|
||||
* from random values found inside of the variables before the initialization
|
||||
*/
|
||||
bool
|
||||
c ( std::vector< CSPvariable<Colour> > variables) {
|
||||
return (
|
||||
( !(variables[I] .fixed || variables[CH].fixed) || (variables[I] .value != variables[CH].value) ) &&
|
||||
( !(variables[I] .fixed || variables[A] .fixed) || (variables[I] .value != variables[A] .value) ) &&
|
||||
( !(variables[I] .fixed || variables[F] .fixed) || (variables[I] .value != variables[F] .value) ) &&
|
||||
( !(variables[A] .fixed || variables[CH].fixed) || (variables[A] .value != variables[CH].value) ) &&
|
||||
( !(variables[A] .fixed || variables[D] .fixed) || (variables[A] .value != variables[D] .value) ) &&
|
||||
( !(variables[CH].fixed || variables[D] .fixed) || (variables[CH].value != variables[D] .value) ) &&
|
||||
( !(variables[CH].fixed || variables[F] .fixed) || (variables[CH].value != variables[F] .value) ) &&
|
||||
( !(variables[D] .fixed || variables[F] .fixed) || (variables[D] .value != variables[F] .value) ) &&
|
||||
( !(variables[E] .fixed || variables[F] .fixed) || (variables[E] .value != variables[F] .value) ) &&
|
||||
( !(variables[E] .fixed || variables[P] .fixed) || (variables[E] .value != variables[P] .value) ) &&
|
||||
( !(variables[B] .fixed || variables[F] .fixed) || (variables[B] .value != variables[F] .value) ) &&
|
||||
( !(variables[B] .fixed || variables[D] .fixed) || (variables[B] .value != variables[D] .value) ) &&
|
||||
( !(variables[B] .fixed || variables[NL].fixed) || (variables[B] .value != variables[NL].value) ) &&
|
||||
( !(variables[B] .fixed || variables[L] .fixed) || (variables[B] .value != variables[L] .value) ) &&
|
||||
( !(variables[L] .fixed || variables[F] .fixed) || (variables[L] .value != variables[F] .value) ) &&
|
||||
( !(variables[L] .fixed || variables[D] .fixed) || (variables[L] .value != variables[D] .value) ) &&
|
||||
( !(variables[NL].fixed || variables[D] .fixed) || (variables[NL].value != variables[D] .value) ) &&
|
||||
( !(variables[DK].fixed || variables[D] .fixed) || (variables[DK].value != variables[D] .value) )
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* FUNCTION: printDomain
|
||||
*
|
||||
* Given the CSP and the index of the variable, prints its allowed domain
|
||||
*/
|
||||
void
|
||||
printDomain (CSP<Colour> csp, int variable)
|
||||
{
|
||||
cout << "[ ";
|
||||
|
||||
for ( size_t i=0; i < csp.getDomain(variable).size(); i++ ) {
|
||||
cout << colours[csp.getDomain(variable)[i]];
|
||||
|
||||
if ( i < csp.getDomain(variable).size() - 1 )
|
||||
cout << ", ";
|
||||
}
|
||||
|
||||
cout << " ]";
|
||||
}
|
||||
|
||||
/**
|
||||
* FUNCTION: printDomains
|
||||
*
|
||||
* Given the CSP, prints the domains of all the variables
|
||||
*/
|
||||
void
|
||||
printDomains (CSP<Colour> csp)
|
||||
{
|
||||
for ( size_t i=0; i < csp.getSize(); i++) {
|
||||
cout << "Domain for variable '" << countries[i] << "':\t";
|
||||
printDomain(csp, i);
|
||||
cout << endl;
|
||||
}
|
||||
|
||||
cout << endl;
|
||||
|
||||
if (csp.isSatisfiable()) {
|
||||
cout << "The CSP has a solution\n";
|
||||
|
||||
if (csp.hasUniqueSolution())
|
||||
cout << "The solution is unique\n";
|
||||
} else
|
||||
cout << "The CSP does not have a solution\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* FUNCTION: getIndexByColour
|
||||
*
|
||||
* Given a colour as string, it picks up the associated index,
|
||||
* if the colour exists in the list, otherwise it throws an
|
||||
* evil exception
|
||||
*/
|
||||
size_t
|
||||
getIndexByColour ( const char* colour )
|
||||
{
|
||||
for ( size_t i=0; i < COLOURS; i++ ) {
|
||||
if (!strcmp(colours[i], colour))
|
||||
return i;
|
||||
}
|
||||
|
||||
throw 666;
|
||||
}
|
||||
|
||||
/**
|
||||
* FUNCTION: valueOK
|
||||
*
|
||||
* Given the CSP, the index of a variable and a value, it checks
|
||||
* if the given value is consistent to the domain of that variable
|
||||
*/
|
||||
bool
|
||||
valueOK ( CSP<Colour> csp, size_t variable, Colour value ) {
|
||||
for ( size_t i=0; i < csp.getDomain(variable).size(); i++ ) {
|
||||
if (csp.getDomain(variable)[i] == value)
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
int
|
||||
main ( int argc, char *argv[] )
|
||||
{
|
||||
vector<Colour> domain;
|
||||
|
||||
// Create the domain containing all the allowed colours
|
||||
for ( int i=0; i < COLOURS; i++)
|
||||
domain.push_back((Colour) i);
|
||||
|
||||
// The CSP will contain as many variables as the number of countries,
|
||||
// applying the logical constraint specified in "c" function
|
||||
CSP<Colour> csp(COUNTRIES, c);
|
||||
|
||||
// Set the domain for the variables
|
||||
for ( size_t i=0; i < COUNTRIES; i++ )
|
||||
csp.setDomain(i, domain);
|
||||
|
||||
// Repeat until we don't find a unique solution for the CSP
|
||||
while (!csp.hasUniqueSolution()) {
|
||||
for ( size_t i=0; i < COUNTRIES && !csp.hasUniqueSolution(); i++ ) {
|
||||
bool satisfiable = true;
|
||||
|
||||
// If a variable has an empty domain, something went wrong
|
||||
// if (csp.getDomain(i).size() == 0) {
|
||||
// cout << "No values left for country " << countries[i]
|
||||
// << ", the domain was probably too small (few colours) or the problem is unsatisfiable\n";
|
||||
// return EXIT_FAILURE;
|
||||
// }
|
||||
|
||||
// If a variable has a domain containing an only element,
|
||||
// just choose it without annoying the user
|
||||
if (csp.getDomain(i).size() == 1) {
|
||||
cout << "Setting colour " << colours[csp.getDomain(i)[0]] << " for " << countries[i] << endl;
|
||||
csp.setValue( i, csp.getDomain(i)[0] );
|
||||
csp.refreshDomains();
|
||||
continue;
|
||||
}
|
||||
|
||||
// Repeat the loop until the user inserts a valid colour for the CSP
|
||||
do {
|
||||
bool found;
|
||||
size_t col_index;
|
||||
|
||||
// Repeat the loop until the users inserts a colour in the list
|
||||
do {
|
||||
string colour;
|
||||
|
||||
cout << "Insert a colour for country '" << countries[i] << "' between " << endl << "\t";
|
||||
printDomain(csp, i);
|
||||
cout << ": ";
|
||||
getline (cin, colour);
|
||||
|
||||
try {
|
||||
col_index = getIndexByColour(colour.c_str());
|
||||
found = true;
|
||||
}
|
||||
|
||||
catch (int e) {
|
||||
cout << "Invalid input, please try again\n";
|
||||
found = false;
|
||||
}
|
||||
} while (!found);
|
||||
|
||||
// Check if the inserted colour is valid for the domain of the variable
|
||||
satisfiable = valueOK(csp, i, (Colour) col_index);
|
||||
|
||||
if (!satisfiable) {
|
||||
cout << "You made an invalid choice according to the current constraints, please try again\n";
|
||||
} else {
|
||||
csp.setValue(i, (Colour) col_index);
|
||||
csp.refreshDomains();
|
||||
}
|
||||
} while (!satisfiable);
|
||||
}
|
||||
}
|
||||
|
||||
cout << endl;
|
||||
printDomains(csp);
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
300
tags
Normal file
300
tags
Normal file
|
@ -0,0 +1,300 @@
|
|||
!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
|
||||
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
|
||||
!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/
|
||||
!_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:
|
||||
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:
|
||||
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 )
|
||||
CSP csp++.h /^ CSP ( int n, bool (*c)(std::vector< CSPvariable<T> >) = __default_constraint );$/;" p class:CSP access:public signature:( int n, bool (*c)(std::vector< CSPvariable<T> >) = __default_constraint )
|
||||
CSP csp++.h /^class CSP {$/;" c
|
||||
CSP doc/latex/classCSP.tex /^\\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{]}}}}$/;" b
|
||||
CSP doc/latex/classCSP.tex /^\\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})}}$/;" b
|
||||
CSP$ $ T $ $ Class Template Reference doc/latex/classCSP.tex /^\\section{CSP$<$ T $>$ Class Template Reference}$/;" s
|
||||
CSP::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 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 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 )
|
||||
CSP::CSP csp++.h /^ CSP ( int n, bool (*c)(std::vector< CSPvariable<T> >) = __default_constraint );$/;" p class:CSP access:public signature:( int n, bool (*c)(std::vector< CSPvariable<T> >) = __default_constraint )
|
||||
CSP::__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 )
|
||||
CSP::__default_domains csp++.h /^ std::vector< std::vector<T> > __default_domains;$/;" m class:CSP access:private
|
||||
CSP::__default_value csp++.h /^ T __default_value;$/;" m class:CSP access:private
|
||||
CSP::__has_default_value csp++.h /^ bool __has_default_value;$/;" m class:CSP access:private
|
||||
CSP::__init csp++.cpp /^CSP<T>::__init (int n, bool (*c)(vector< CSPvariable<T> >))$/;" f class:CSP signature:(int n, bool (*c)(vector< CSPvariable<T> >))
|
||||
CSP::__init csp++.h /^ void __init ( int n, bool (*c)(std::vector< CSPvariable<T> >) );$/;" p class:CSP access:private signature:( int n, bool (*c)(std::vector< CSPvariable<T> >) )
|
||||
CSP::appendConstraint csp++.cpp /^CSP<T>::appendConstraint ( bool (*c)(vector< CSPvariable<T> >))$/;" f class:CSP signature:( bool (c)vector< CSPvariable<T> >))
|
||||
CSP::appendConstraint csp++.h /^ void appendConstraint ( bool (*c)(std::vector< CSPvariable<T> >) );$/;" p class:CSP access:public signature:( bool (c)std::vector< CSPvariable<T> >) )
|
||||
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::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 )
|
||||
CSP::getSize csp++.h /^ size_t getSize ( void );$/;" p class:CSP access:public signature:( void )
|
||||
CSP::hasUniqueSolution csp++.cpp /^CSP<T>::hasUniqueSolution ( void )$/;" f class:CSP signature:( void )
|
||||
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::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 )
|
||||
CSP::restoreDomains csp++.h /^ void restoreDomains ( void );$/;" p class:CSP access:private signature:( void )
|
||||
CSP::setConstraint csp++.cpp /^CSP<T>::setConstraint ( bool (*c)(vector< CSPvariable<T> >))$/;" f class:CSP signature:( bool (c)vector< CSPvariable<T> >))
|
||||
CSP::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 )
|
||||
CSP::setConstraint csp++.h /^ void setConstraint ( bool (*c)(std::vector< CSPvariable<T> >) );$/;" p class:CSP access:public signature:( bool (c)std::vector< CSPvariable<T> >) )
|
||||
CSP::setConstraint csp++.h /^ void setConstraint ( std::vector< bool(*)(std::vector< CSPvariable<T> >) > c );$/;" p class:CSP access:public signature:( std::vector< bool(*)(std::vector< CSPvariable<T> >) > c )
|
||||
CSP::setDomain csp++.cpp /^CSP<T>::setDomain (size_t index, T domain[], int size)$/;" f class:CSP signature:(size_t index, T domain[], int size)
|
||||
CSP::setDomain csp++.cpp /^CSP<T>::setDomain (size_t index, vector<T> domain)$/;" f class:CSP signature:(size_t index, vector<T> domain)
|
||||
CSP::setDomain csp++.h /^ void setDomain ( size_t index, T domain[], int size );$/;" p class:CSP access:public signature:( size_t index, T domain[], int size )
|
||||
CSP::setDomain csp++.h /^ void setDomain ( size_t index, std::vector<T> domain );$/;" p class:CSP access:public signature:( size_t index, std::vector<T> domain )
|
||||
CSP::setValue csp++.cpp /^CSP<T>::setValue ( size_t index, T value )$/;" f class:CSP signature:( size_t index, T value )
|
||||
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::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
|
||||
CSPexception Class Reference doc/latex/classCSPexception.tex /^\\section{CSPexception Class Reference}$/;" s
|
||||
CSPexception::CSPexception csp++.h /^ CSPexception (const char *m) {$/;" f class:CSPexception access:public signature:(const char *m)
|
||||
CSPexception::message csp++.h /^ const char* message;$/;" m class:CSPexception access:private
|
||||
CSPexception::what csp++.h /^ virtual const char* what() {$/;" f class:CSPexception access:public signature:()
|
||||
CSPvariable csp++.h /^struct CSPvariable {$/;" s
|
||||
CSPvariable$ $ T $ $ Struct Template Reference doc/latex/structCSPvariable.tex /^\\section{CSPvariable$<$ T $>$ Struct Template Reference}$/;" s
|
||||
CSPvariable::domain csp++.h /^ std::vector<T> domain;$/;" m struct:CSPvariable access:public
|
||||
CSPvariable::fixed csp++.h /^ bool fixed;$/;" m struct:CSPvariable access:public
|
||||
CSPvariable::index csp++.h /^ int index;$/;" m struct:CSPvariable access:public
|
||||
CSPvariable::value csp++.h /^ T value;$/;" m struct:CSPvariable access:public
|
||||
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
|
||||
Constructor Destructor Documentation doc/latex/classCSP.tex /^\\subsection{Constructor \\& Destructor Documentation}$/;" b
|
||||
D fourcolours.cpp 35;" d file:
|
||||
DK fourcolours.cpp 42;" d 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:
|
||||
FOURCOLOURS Makefile /^FOURCOLOURS = fourcolours$/;" m
|
||||
I fourcolours.cpp 32;" d file:
|
||||
INCLUDES Makefile /^INCLUDES = -I.$/;" m
|
||||
L fourcolours.cpp 40;" d file:
|
||||
NL fourcolours.cpp 41;" d file:
|
||||
OBJ Makefile /^OBJ = $(SRC:.cpp=.o)$/;" m
|
||||
OUT Makefile /^OUT = libcsp++.a$/;" m
|
||||
P fourcolours.cpp 38;" d 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
|
||||
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
|
||||
SearchBox.CloseSelectionWindow doc/html/search/search.js /^ this.CloseSelectionWindow = function()$/;" m
|
||||
SearchBox.DOMPopupSearchResults doc/html/search/search.js /^ this.DOMPopupSearchResults = function()$/;" m
|
||||
SearchBox.DOMPopupSearchResultsWindow doc/html/search/search.js /^ this.DOMPopupSearchResultsWindow = function()$/;" m
|
||||
SearchBox.DOMSearchBox doc/html/search/search.js /^ this.DOMSearchBox = function()$/;" m
|
||||
SearchBox.DOMSearchClose doc/html/search/search.js /^ this.DOMSearchClose = function()$/;" m
|
||||
SearchBox.DOMSearchField doc/html/search/search.js /^ this.DOMSearchField = function()$/;" m
|
||||
SearchBox.DOMSearchSelect doc/html/search/search.js /^ this.DOMSearchSelect = function()$/;" m
|
||||
SearchBox.DOMSearchSelectWindow doc/html/search/search.js /^ this.DOMSearchSelectWindow = function()$/;" m
|
||||
SearchBox.OnSearchFieldChange doc/html/search/search.js /^ this.OnSearchFieldChange = function(evt)$/;" m
|
||||
SearchBox.OnSearchFieldFocus doc/html/search/search.js /^ this.OnSearchFieldFocus = function(isActive)$/;" m
|
||||
SearchBox.OnSearchSelectHide doc/html/search/search.js /^ this.OnSearchSelectHide = function()$/;" m
|
||||
SearchBox.OnSearchSelectKey doc/html/search/search.js /^ this.OnSearchSelectKey = function(evt)$/;" m
|
||||
SearchBox.OnSearchSelectShow doc/html/search/search.js /^ this.OnSearchSelectShow = function()$/;" m
|
||||
SearchBox.OnSelectItem doc/html/search/search.js /^ this.OnSelectItem = function(id)$/;" m
|
||||
SearchBox.Search doc/html/search/search.js /^ this.Search = function()$/;" m
|
||||
SearchBox.SelectItemCount doc/html/search/search.js /^ this.SelectItemCount = function(id)$/;" m
|
||||
SearchBox.SelectItemSet doc/html/search/search.js /^ this.SelectItemSet = function(id)$/;" m
|
||||
SearchResults doc/html/search/search.js /^function SearchResults(name)$/;" c
|
||||
SearchResults.FindChildElement doc/html/search/search.js /^ this.FindChildElement = function(id)$/;" m
|
||||
SearchResults.Nav doc/html/search/search.js /^ this.Nav = function(evt,itemIndex) $/;" m
|
||||
SearchResults.NavChild doc/html/search/search.js /^ this.NavChild = function(evt,itemIndex,childIndex)$/;" m
|
||||
SearchResults.NavNext doc/html/search/search.js /^ this.NavNext = function(index)$/;" m
|
||||
SearchResults.NavPrev doc/html/search/search.js /^ this.NavPrev = function(index)$/;" m
|
||||
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
|
||||
__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
|
||||
__default_value csp++.h /^ T __default_value;$/;" m class:CSP access:private
|
||||
__has_default_value csp++.h /^ bool __has_default_value;$/;" m class:CSP access:private
|
||||
__init csp++.cpp /^CSP<T>::__init (int n, bool (*c)(vector< CSPvariable<T> >))$/;" f class:CSP signature:(int n, bool (*c)(vector< CSPvariable<T> >))
|
||||
__init csp++.h /^ void __init ( int n, bool (*c)(std::vector< CSPvariable<T> >) );$/;" p class:CSP access:private signature:( int n, bool (*c)(std::vector< CSPvariable<T> >) )
|
||||
_details doc/html/classCSP.html /^<hr\/><a name="_details"><\/a><h2>Detailed Description<\/h2>$/;" a
|
||||
_details doc/html/classCSPexception.html /^<hr\/><a name="_details"><\/a><h2>Detailed Description<\/h2>$/;" a
|
||||
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
|
||||
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
|
||||
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 )
|
||||
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:
|
||||
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
|
||||
indexSectionNames.0 doc/html/search/search.js /^ 0: "all",$/;" p
|
||||
indexSectionNames.1 doc/html/search/search.js /^ 1: "classes",$/;" p
|
||||
indexSectionNames.2 doc/html/search/search.js /^ 2: "functions"$/;" p
|
||||
indexSectionsWithContent.0 doc/html/search/search.js /^ 0: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101100111000000001101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",$/;" p
|
||||
indexSectionsWithContent.1 doc/html/search/search.js /^ 1: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",$/;" p
|
||||
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 )
|
||||
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
|
||||
l00004 doc/html/csp_09_09_8h_source.html /^<a name="l00004"><\/a>00004 <span class="comment"> * Filename: csp++.h<\/span>$/;" a
|
||||
l00005 doc/html/csp_09_09_8h_source.html /^<a name="l00005"><\/a>00005 <span class="comment"> *<\/span>$/;" a
|
||||
l00006 doc/html/csp_09_09_8h_source.html /^<a name="l00006"><\/a>00006 <span class="comment"> * Description: <\/span>$/;" a
|
||||
l00007 doc/html/csp_09_09_8h_source.html /^<a name="l00007"><\/a>00007 <span class="comment"> *<\/span>$/;" a
|
||||
l00008 doc/html/csp_09_09_8h_source.html /^<a name="l00008"><\/a>00008 <span class="comment"> * Version: 1.0<\/span>$/;" a
|
||||
l00009 doc/html/csp_09_09_8h_source.html /^<a name="l00009"><\/a>00009 <span class="comment"> * Created: 16\/05\/2010 23:16:42<\/span>$/;" a
|
||||
l00010 doc/html/csp_09_09_8h_source.html /^<a name="l00010"><\/a>00010 <span class="comment"> * Revision: none<\/span>$/;" a
|
||||
l00011 doc/html/csp_09_09_8h_source.html /^<a name="l00011"><\/a>00011 <span class="comment"> * Compiler: gcc<\/span>$/;" a
|
||||
l00012 doc/html/csp_09_09_8h_source.html /^<a name="l00012"><\/a>00012 <span class="comment"> *<\/span>$/;" a
|
||||
l00013 doc/html/csp_09_09_8h_source.html /^<a name="l00013"><\/a>00013 <span class="comment"> * Author: BlackLight (http:\/\/0x00.ath.cx), <blacklight@autistici.org><\/span>$/;" a
|
||||
l00014 doc/html/csp_09_09_8h_source.html /^<a name="l00014"><\/a>00014 <span class="comment"> * Company: lulz<\/span>$/;" a
|
||||
l00015 doc/html/csp_09_09_8h_source.html /^<a name="l00015"><\/a>00015 <span class="comment"> *<\/span>$/;" a
|
||||
l00016 doc/html/csp_09_09_8h_source.html /^<a name="l00016"><\/a>00016 <span class="comment"> * =====================================================================================<\/span>$/;" a
|
||||
l00017 doc/html/csp_09_09_8h_source.html /^<a name="l00017"><\/a>00017 <span class="comment"> *\/<\/span>$/;" a
|
||||
l00018 doc/html/csp_09_09_8h_source.html /^<a name="l00018"><\/a>00018 $/;" a
|
||||
l00019 doc/html/csp_09_09_8h_source.html /^<a name="l00019"><\/a>00019 <span class="preprocessor">#include <vector><\/span>$/;" a
|
||||
l00020 doc/html/csp_09_09_8h_source.html /^<a name="l00020"><\/a>00020 <span class="preprocessor">#include <exception><\/span>$/;" a
|
||||
l00021 doc/html/csp_09_09_8h_source.html /^<a name="l00021"><\/a>00021 $/;" a
|
||||
l00022 doc/html/csp_09_09_8h_source.html /^<a name="l00022"><\/a>00022 <span class="keyword">template<\/span><<span class="keyword">class<\/span> T>$/;" a
|
||||
l00023 doc/html/csp_09_09_8h_source.html /^<a name="l00023"><\/a><a class="code" href="structCSPvariable.html">00023<\/a> <span class="keyword">struct <\/span><a class="code" href="structCSPvariable.html">CSPvariable<\/a> {$/;" a
|
||||
l00024 doc/html/csp_09_09_8h_source.html /^<a name="l00024"><\/a>00024 <span class="keywordtype">int<\/span> index;$/;" a
|
||||
l00025 doc/html/csp_09_09_8h_source.html /^<a name="l00025"><\/a>00025 T value;$/;" a
|
||||
l00026 doc/html/csp_09_09_8h_source.html /^<a name="l00026"><\/a>00026 std::vector<T> domain;$/;" a
|
||||
l00027 doc/html/csp_09_09_8h_source.html /^<a name="l00027"><\/a>00027 };$/;" a
|
||||
l00028 doc/html/csp_09_09_8h_source.html /^<a name="l00028"><\/a>00028 $/;" a
|
||||
l00033 doc/html/csp_09_09_8h_source.html /^<a name="l00033"><\/a><a class="code" href="classCSPexception.html">00033<\/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
|
||||
l00034 doc/html/csp_09_09_8h_source.html /^<a name="l00034"><\/a>00034 <span class="keyword">const<\/span> <span class="keywordtype">char<\/span>* message;$/;" a
|
||||
l00035 doc/html/csp_09_09_8h_source.html /^<a name="l00035"><\/a>00035 $/;" a
|
||||
l00036 doc/html/csp_09_09_8h_source.html /^<a name="l00036"><\/a>00036 <span class="keyword">public<\/span>:$/;" a
|
||||
l00037 doc/html/csp_09_09_8h_source.html /^<a name="l00037"><\/a>00037 <a class="code" href="classCSPexception.html" title="Class for managing exception in CSP.">CSPexception<\/a> (<span class="keyword">const<\/span> <span class="keywordtype">char<\/span> *m) {$/;" a
|
||||
l00038 doc/html/csp_09_09_8h_source.html /^<a name="l00038"><\/a>00038 message = m;$/;" a
|
||||
l00039 doc/html/csp_09_09_8h_source.html /^<a name="l00039"><\/a>00039 }$/;" a
|
||||
l00040 doc/html/csp_09_09_8h_source.html /^<a name="l00040"><\/a>00040 $/;" a
|
||||
l00041 doc/html/csp_09_09_8h_source.html /^<a name="l00041"><\/a>00041 <span class="keyword">virtual<\/span> <span class="keyword">const<\/span> <span class="keywordtype">char<\/span>* what() {$/;" a
|
||||
l00042 doc/html/csp_09_09_8h_source.html /^<a name="l00042"><\/a>00042 <span class="keywordflow">return<\/span> message;$/;" a
|
||||
l00043 doc/html/csp_09_09_8h_source.html /^<a name="l00043"><\/a>00043 }$/;" a
|
||||
l00044 doc/html/csp_09_09_8h_source.html /^<a name="l00044"><\/a>00044 };$/;" a
|
||||
l00045 doc/html/csp_09_09_8h_source.html /^<a name="l00045"><\/a>00045 $/;" a
|
||||
l00050 doc/html/csp_09_09_8h_source.html /^<a name="l00050"><\/a>00050 <span class="keyword">template<\/span><<span class="keyword">class<\/span> T>$/;" a
|
||||
l00051 doc/html/csp_09_09_8h_source.html /^<a name="l00051"><\/a><a class="code" href="classCSP.html">00051<\/a> <span class="keyword">class <\/span><a class="code" href="classCSP.html" title="Main class for managing a CSP.">CSP<\/a> {$/;" a
|
||||
l00052 doc/html/csp_09_09_8h_source.html /^<a name="l00052"><\/a>00052 <span class="keyword">private<\/span>:$/;" a
|
||||
l00053 doc/html/csp_09_09_8h_source.html /^<a name="l00053"><\/a>00053 <span class="keyword">template<\/span><<span class="keyword">class<\/span> TT>$/;" a
|
||||
l00054 doc/html/csp_09_09_8h_source.html /^<a name="l00054"><\/a>00054 <span class="keyword">struct <\/span>arc {$/;" a
|
||||
l00055 doc/html/csp_09_09_8h_source.html /^<a name="l00055"><\/a>00055 <a class="code" href="structCSPvariable.html">CSPvariable<TT><\/a> var[2];$/;" a
|
||||
l00056 doc/html/csp_09_09_8h_source.html /^<a name="l00056"><\/a>00056 TT value[2];$/;" a
|
||||
l00057 doc/html/csp_09_09_8h_source.html /^<a name="l00057"><\/a>00057 };$/;" a
|
||||
l00058 doc/html/csp_09_09_8h_source.html /^<a name="l00058"><\/a>00058 $/;" a
|
||||
l00059 doc/html/csp_09_09_8h_source.html /^<a name="l00059"><\/a>00059 std::vector<bool> fixed;$/;" a
|
||||
l00060 doc/html/csp_09_09_8h_source.html /^<a name="l00060"><\/a>00060 std::vector< CSPvariable<T> > variables;$/;" a
|
||||
l00061 doc/html/csp_09_09_8h_source.html /^<a name="l00061"><\/a>00061 std::vector< bool (*)(std::vector< CSPvariable<T> >) > constraints;$/;" a
|
||||
l00062 doc/html/csp_09_09_8h_source.html /^<a name="l00062"><\/a>00062 <span class="preprocessor"> #define constraint constraints[0]<\/span>$/;" a
|
||||
l00063 doc/html/csp_09_09_8h_source.html /^<a name="l00063"><\/a>00063 <span class="preprocessor"><\/span>$/;" a
|
||||
l00064 doc/html/csp_09_09_8h_source.html /^<a name="l00064"><\/a>00064 std::vector< std::vector<T> > __default_domains;$/;" a
|
||||
l00065 doc/html/csp_09_09_8h_source.html /^<a name="l00065"><\/a>00065 T __default_value;$/;" a
|
||||
l00066 doc/html/csp_09_09_8h_source.html /^<a name="l00066"><\/a>00066 <span class="keywordtype">bool<\/span> __has_default_value;$/;" a
|
||||
l00067 doc/html/csp_09_09_8h_source.html /^<a name="l00067"><\/a>00067 <span class="keyword">static<\/span> <span class="keywordtype">bool<\/span> __default_constraint ( std::vector< <a class="code" href="structCSPvariable.html">CSPvariable<T><\/a> > v ) { <span class="keywordflow">return<\/span> <span class="keyword">true<\/span>; }$/;" a
|
||||
l00068 doc/html/csp_09_09_8h_source.html /^<a name="l00068"><\/a>00068 <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">CSPvariable<T><\/a> >) );$/;" a
|
||||
l00069 doc/html/csp_09_09_8h_source.html /^<a name="l00069"><\/a>00069 <span class="keywordtype">void<\/span> restoreDomains ( <span class="keywordtype">void<\/span> );$/;" a
|
||||
l00070 doc/html/csp_09_09_8h_source.html /^<a name="l00070"><\/a>00070 $/;" a
|
||||
l00071 doc/html/csp_09_09_8h_source.html /^<a name="l00071"><\/a>00071 <span class="keyword">public<\/span>:$/;" a
|
||||
l00081 doc/html/csp_09_09_8h_source.html /^<a name="l00081"><\/a>00081 <a class="code" href="classCSP.html#ad49548121582cc2d59e0d7f100092b75" title="Class constructor.">CSP<\/a> ( <span class="keywordtype">int<\/span> n, <span class="keywordtype">bool<\/span> (*c)(std::vector< <a class="code" href="structCSPvariable.html">CSPvariable<T><\/a> >) = __default_constraint );$/;" a
|
||||
l00082 doc/html/csp_09_09_8h_source.html /^<a name="l00082"><\/a>00082 $/;" a
|
||||
l00096 doc/html/csp_09_09_8h_source.html /^<a name="l00096"><\/a>00096 <a class="code" href="classCSP.html#ad49548121582cc2d59e0d7f100092b75" title="Class constructor.">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">CSPvariable<T><\/a> >) = __default_constraint );$/;" a
|
||||
l00097 doc/html/csp_09_09_8h_source.html /^<a name="l00097"><\/a>00097 $/;" a
|
||||
l00104 doc/html/csp_09_09_8h_source.html /^<a name="l00104"><\/a>00104 <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
|
||||
l00105 doc/html/csp_09_09_8h_source.html /^<a name="l00105"><\/a>00105 $/;" a
|
||||
l00113 doc/html/csp_09_09_8h_source.html /^<a name="l00113"><\/a>00113 <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
|
||||
l00114 doc/html/csp_09_09_8h_source.html /^<a name="l00114"><\/a>00114 $/;" a
|
||||
l00120 doc/html/csp_09_09_8h_source.html /^<a name="l00120"><\/a>00120 <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">CSPvariable<T><\/a> >) );$/;" a
|
||||
l00121 doc/html/csp_09_09_8h_source.html /^<a name="l00121"><\/a>00121 $/;" a
|
||||
l00128 doc/html/csp_09_09_8h_source.html /^<a name="l00128"><\/a>00128 <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">CSPvariable<T><\/a> >) > c );$/;" a
|
||||
l00129 doc/html/csp_09_09_8h_source.html /^<a name="l00129"><\/a>00129 $/;" a
|
||||
l00135 doc/html/csp_09_09_8h_source.html /^<a name="l00135"><\/a>00135 <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
|
||||
l00136 doc/html/csp_09_09_8h_source.html /^<a name="l00136"><\/a>00136 $/;" a
|
||||
l00142 doc/html/csp_09_09_8h_source.html /^<a name="l00142"><\/a>00142 <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">CSPvariable<T><\/a> >) );$/;" a
|
||||
l00143 doc/html/csp_09_09_8h_source.html /^<a name="l00143"><\/a>00143 $/;" a
|
||||
l00148 doc/html/csp_09_09_8h_source.html /^<a name="l00148"><\/a>00148 <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
|
||||
l00149 doc/html/csp_09_09_8h_source.html /^<a name="l00149"><\/a>00149 $/;" a
|
||||
l00156 doc/html/csp_09_09_8h_source.html /^<a name="l00156"><\/a>00156 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
|
||||
l00157 doc/html/csp_09_09_8h_source.html /^<a name="l00157"><\/a>00157 $/;" a
|
||||
l00163 doc/html/csp_09_09_8h_source.html /^<a name="l00163"><\/a>00163 <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
|
||||
l00164 doc/html/csp_09_09_8h_source.html /^<a name="l00164"><\/a>00164 $/;" a
|
||||
l00171 doc/html/csp_09_09_8h_source.html /^<a name="l00171"><\/a>00171 <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 value );$/;" a
|
||||
l00172 doc/html/csp_09_09_8h_source.html /^<a name="l00172"><\/a>00172 $/;" a
|
||||
l00181 doc/html/csp_09_09_8h_source.html /^<a name="l00181"><\/a>00181 <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
|
||||
l00182 doc/html/csp_09_09_8h_source.html /^<a name="l00182"><\/a>00182 $/;" a
|
||||
l00188 doc/html/csp_09_09_8h_source.html /^<a name="l00188"><\/a>00188 <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
|
||||
l00189 doc/html/csp_09_09_8h_source.html /^<a name="l00189"><\/a>00189 $/;" a
|
||||
l00190 doc/html/csp_09_09_8h_source.html /^<a name="l00190"><\/a>00190 $/;" a
|
||||
l00198 doc/html/csp_09_09_8h_source.html /^<a name="l00198"><\/a>00198 <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
|
||||
l00199 doc/html/csp_09_09_8h_source.html /^<a name="l00199"><\/a>00199 };$/;" a
|
||||
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[] )
|
||||
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:
|
||||
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 )
|
||||
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> >) )
|
||||
setConstraint csp++.h /^ void setConstraint ( std::vector< bool(*)(std::vector< CSPvariable<T> >) > c );$/;" p class:CSP access:public signature:( std::vector< bool(*)(std::vector< CSPvariable<T> >) > c )
|
||||
setDomain csp++.cpp /^CSP<T>::setDomain (size_t index, T domain[], int size)$/;" f class:CSP signature:(size_t index, T domain[], int size)
|
||||
setDomain csp++.cpp /^CSP<T>::setDomain (size_t index, vector<T> domain)$/;" f class:CSP signature:(size_t index, vector<T> domain)
|
||||
setDomain csp++.h /^ void setDomain ( size_t index, T domain[], int size );$/;" p class:CSP access:public signature:( size_t index, T domain[], int size )
|
||||
setDomain csp++.h /^ void setDomain ( size_t index, std::vector<T> domain );$/;" p class:CSP access:public signature:( size_t index, std::vector<T> domain )
|
||||
setValue csp++.cpp /^CSP<T>::setValue ( size_t index, T value )$/;" f class:CSP signature:( size_t index, T value )
|
||||
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
|
||||
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++.h /^ TT value[2];$/;" m struct:CSP::arc access:public
|
||||
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 )
|
||||
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:
|
Loading…
Reference in a new issue