"Fossies" - the Fresh Open Source Software Archive 
Member "brlcad-7.32.4/src/libpc/NOTES" (29 Jul 2021, 2037 Bytes) of package /linux/misc/brlcad-7.32.4.tar.bz2:
As a special service "Fossies" has tried to format the requested text file into HTML format (style:
standard) with prefixed line numbers.
Alternatively you can here
view or
download the uninterpreted source code file.
1 LIBPC
2 -----
3
4 * BNF Parser for generation of constraint objects from expressions
5
6 * Make better pc_pc_set, pc_param and pc_constraint structures
7 instead of the current ugly ones.
8
9 * Test constraint solution via Read->Generate->Solve->Update routine
10
11 * Implement Non-deterministic solution techniques: Backjumping,
12 Backmarking
13
14 * Implement Deterministic propagators: NC, AC1-7, PC1-5
15
16 * Check STL structures in public API ; wrapping with bu_list
17
18 * Boost constrained_value based functor integration for 'compiled'
19 constraints
20
21 * Implement Hypergraph representation system
22
23 * Explore analytic and symbolic solution system
24
25 -----
26
27 Looking at flatzinc as a constraint solver independent way to specify
28 constraints - libpc could use that standard, and then do whatever is needed on
29 the back end (talk to gecode, Google's or-tools solver, etc. via flatzinc
30 directly, or translate as needed.)
31
32 Might be worthwhile for readability to support the higher level minizinc (or at
33 least some part of it) and have libpc incorporate the ability to translate
34 "under the hood" to flatzinc, if appropriately licensed translators can be
35 found - the G12 project's tools may be of some use, but would have to be
36 converted from the Mercury language to C: http://www.mercurylang.org/
37
38 Would have to think about a generic C structure to hold minizinc/flatzinc
39 results in a programmatically useful form - it wouldn't do to parse the text
40 outputs, although they should be available for debugging if needed...
41
42 Minizinc 2.0 is worth keeping an eye on - license is MPL2, which is between
43 Apache and LGPLv2 from a practical standpoint (can't combine with our code, but
44 we can use it - do need to provide modified versions of original code, but
45 license isn't viral):
46
47 http://www.minizinc.org/2.0/index.html
48
49 It's being actively developed in C++ rather than Mercury, which is a Good Thing
50 from a support standpoint.
51
52 Note that SafeInt, which they call out as being MS-PL licensed, now has an
53 MIT licensed version available here: https://github.com/dcleblanc/SafeInt
54