problems.c File Reference

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <assert.h>
#include "solver.h"
#include "bitmap.h"
#include "pool.h"
#include "util.h"
#include "evr.h"
#include "solverdebug.h"
#include "pooltypes.h"

Go to the source code of this file.

Functions

void solver_disableproblem (Solver *solv, Id v)
void solver_enableproblem (Solver *solv, Id v)
static void enableweakrules (Solver *solv)
static void refine_suggestion (Solver *solv, Id *problem, Id sug, Queue *refined, int essentialok)
static int problems_sortcmp (const void *ap, const void *bp, void *dp)
static void convertsolution (Solver *solv, Id why, Queue *solutionq)
int solver_prepare_solutions (Solver *solv)
static void create_solutions (Solver *solv, int probnr, int solidx)
unsigned int solver_problem_count (Solver *solv)
Id solver_next_problem (Solver *solv, Id problem)
unsigned int solver_solution_count (Solver *solv, Id problem)
Id solver_next_solution (Solver *solv, Id problem, Id solution)
unsigned int solver_solutionelement_count (Solver *solv, Id problem, Id solution)
Id solver_next_solutionelement (Solver *solv, Id problem, Id solution, Id element, Id *p, Id *rp)
void solver_take_solutionelement (Solver *solv, Id p, Id rp, Queue *job)
void solver_take_solution (Solver *solv, Id problem, Id solution, Queue *job)
static void findproblemrule_internal (Solver *solv, Id idx, Id *reqrp, Id *conrp, Id *sysrp, Id *jobrp)
Id solver_findproblemrule (Solver *solv, Id problem)
static void findallproblemrules_internal (Solver *solv, Id idx, Queue *rules)
void solver_findallproblemrules (Solver *solv, Id problem, Queue *rules)
SolverRuleinfo solver_problemruleinfo (Solver *solv, Queue *job, Id rid, Id *depp, Id *sourcep, Id *targetp)

Function Documentation

void solver_disableproblem ( Solver solv,
Id  v 
)
void solver_enableproblem ( Solver solv,
Id  v 
)
static void enableweakrules ( Solver solv  )  [static]

Definition at line 149 of file problems.c.

References _Rule::d, MAPTST, _Solver::rules, solver_enablerule(), and _Solver::weakrulemap.

Referenced by refine_suggestion().

static void refine_suggestion ( Solver solv,
Id problem,
Id  sug,
Queue refined,
int  essentialok 
) [static]
static int problems_sortcmp ( const void *  ap,
const void *  bp,
void *  dp 
) [static]

Definition at line 347 of file problems.c.

References _Queue::elements, and SOLVER_ESSENTIAL.

Referenced by create_solutions().

static void convertsolution ( Solver solv,
Id  why,
Queue solutionq 
) [static]
int solver_prepare_solutions ( Solver solv  ) 

Definition at line 480 of file problems.c.

References _Queue::count, _Queue::elements, _Solver::problems, queue_push(), and _Solver::solutions.

Referenced by solver_solve().

static void create_solutions ( Solver solv,
int  probnr,
int  solidx 
) [static]
unsigned int solver_problem_count ( Solver solv  ) 

Definition at line 630 of file problems.c.

References _Queue::count, and _Solver::problems.

Id solver_next_problem ( Solver solv,
Id  problem 
)

Definition at line 636 of file problems.c.

References _Queue::count, and _Solver::problems.

Referenced by solver_printallsolutions().

unsigned int solver_solution_count ( Solver solv,
Id  problem 
)
Id solver_next_solution ( Solver solv,
Id  problem,
Id  solution 
)
unsigned int solver_solutionelement_count ( Solver solv,
Id  problem,
Id  solution 
)

Definition at line 662 of file problems.c.

References _Queue::elements, _Solver::problems, and _Solver::solutions.

Id solver_next_solutionelement ( Solver solv,
Id  problem,
Id  solution,
Id  element,
Id p,
Id rp 
)

Definition at line 695 of file problems.c.

References _Queue::elements, _Solver::problems, and _Solver::solutions.

Referenced by solver_printsolution(), and solver_take_solution().

void solver_take_solutionelement ( Solver solv,
Id  p,
Id  rp,
Queue job 
)
void solver_take_solution ( Solver solv,
Id  problem,
Id  solution,
Queue job 
)

Definition at line 736 of file problems.c.

References solver_next_solutionelement(), and solver_take_solutionelement().

static void findproblemrule_internal ( Solver solv,
Id  idx,
Id reqrp,
Id conrp,
Id sysrp,
Id jobrp 
) [static]
Id solver_findproblemrule ( Solver solv,
Id  problem 
)

Definition at line 851 of file problems.c.

References _Queue::elements, findproblemrule_internal(), and _Solver::problems.

Referenced by solver_printprobleminfo().

static void findallproblemrules_internal ( Solver solv,
Id  idx,
Queue rules 
) [static]
void solver_findallproblemrules ( Solver solv,
Id  problem,
Queue rules 
)
SolverRuleinfo solver_problemruleinfo ( Solver solv,
Queue job,
Id  rid,
Id depp,
Id sourcep,
Id targetp 
)

Definition at line 902 of file problems.c.

References solver_ruleinfo().

Generated on Mon Dec 12 11:44:12 2011 for satsolver by  doxygen 1.6.3