satsolver  0.17.2
Functions
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"

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 358 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 491 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 639 of file problems.c.

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

Id solver_next_problem ( Solver *  solv,
Id  problem 
)

Definition at line 645 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 671 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 704 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 745 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 860 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 911 of file problems.c.

References solver_ruleinfo().