Adrián Arroyo Calle
682b2ada4c
Rename to_upper to upper and to_lower to lower
2023-10-28 19:16:07 +02:00
Mark
ff19db0084
qualify dif/2 call in reinforce_goal ( #2135 )
2023-10-25 12:26:01 -06:00
Mark
f10d7c05f9
correct char_type/2 ( #2132 )
2023-10-24 15:35:37 -06:00
Mark
f80dff851b
remove unnecessary macros inclusion in mock_wam.rs
2023-10-24 15:15:29 -06:00
Mark
63cbeb9a3c
correct modulus bug ( #2118 , #2119 )
2023-10-24 14:20:26 -06:00
Mark
773d3f81fd
remove list remnants from stack iteration in printer when cyclic ( #2131 )
2023-10-24 14:10:11 -06:00
Mark
4ab3e23b1f
fix cycle detection in lists by looking backward analogously to the same process for structures ( #2130 )
2023-10-24 12:23:05 -06:00
Mark
d588b18c39
correct LIS backward bug in cycle_detection.rs
2023-10-23 13:28:44 -06:00
Mark
97b899f4a3
add STOP_AT_CYCLES const parameter for CycleDetectingIter
2023-10-23 12:05:13 -06:00
Mark
6a913bc4cc
use Deutsch-Schorr-Waite to implement acyclic_term/1 ( #2128 )
2023-10-21 21:47:29 -06:00
Mark
bf46c4b5c1
use topo_sort to correct acyclic_term ( #2124 , #2125 )
2023-10-18 12:00:40 -06:00
Nicolas Luck
0c9740fe52
Fix wasm warnings
2023-10-17 22:07:38 +02:00
Mark
43f0b6c28d
fix cyclicity detection through variables ( #2122 , #2123 )
2023-10-16 15:19:43 -06:00
Nicolas Luck
2776beb842
Use std::sync::RwLock instead of tokio::sync::RwLock (by @aarroyoc)
2023-10-16 14:59:06 +02:00
Nicolas Luck
d7fa6c0ade
Fix signalling of success/failure (by @mthom)
2023-10-16 14:56:17 +02:00
Nicolas Luck
025412aac0
Revert "Remove unuse import"
...
This reverts commit bfa7d3cf41 .
2023-10-16 14:55:38 +02:00
Nicolas Luck
bfa7d3cf41
Remove unuse import
2023-10-16 13:44:51 +02:00
Nicolas Luck
9990780b82
Merge branch 'master' into library-use-case
2023-10-16 13:43:26 +02:00
Mark
dff2e73842
more eagerly check for cyclicity of variables in cycle detecting stackless iterator ( #2121 )
2023-10-15 17:43:29 -06:00
Mark
e2000859b6
add backward looking cyclicity check for variables in cycle detecting stackless iterator ( #2111 , #2117 )
2023-10-15 13:07:41 -06:00
Mark
3a6aee72a3
correct is_cyclic again for non-variable ref cells ( #2116 )
2023-10-15 01:28:42 -06:00
Mark
3fb2e451a2
improve cycle detection in detect_list_cycles ( #2111 )
2023-10-15 00:58:19 -06:00
Mark
7875b96956
simplify stackless iterator is_cyclic ( #2111 )
2023-10-14 23:56:46 -06:00
Mark
d96c9e00b7
correct more acyclic_term/1 issues ( #2111 , #2114 ), add acyclic_term tests
2023-10-14 18:38:10 -06:00
Mark
379c252b89
correct cyclic variable check in cycle detecting stackless iterator ( #2111 , #2113 )
2023-10-14 14:03:47 -06:00
Mark
307cb56ef5
fix bugs & incompleteness of cycle-detecting stackless iterator ( #2111 )
2023-10-14 13:00:58 -06:00
notoria
62e6ca02f9
Reify (^)/2
...
Like (/)/2, (^)/2 can fail in cases such as 0 #==> X #= 2^(-1), where success is expected.
2023-10-14 12:11:24 -06:00
notoria
c6fcbe20e1
Trigger propagator for popcount/1
2023-10-14 12:11:24 -06:00
notoria
a1b71f0440
Trigger propagator for sign/1
2023-10-14 12:11:24 -06:00
notoria
dc08c26d9f
Trigger propagator for (xor)/2
2023-10-14 12:11:24 -06:00
Mark
669023914a
add bounds checks for stackless iterator ( #2110 )
2023-10-14 12:11:22 -06:00
Mark
e4a677ceea
detect all cycles in roughly linear time and constant space ( #2102 )
2023-10-13 18:05:52 -06:00
Mark
8aadc99f1d
fix bugs in marker algorithm iterator
2023-10-13 14:38:50 -06:00
Mark
1ea397a807
correct (mod)/2 ( #2103 , #2107 )
2023-10-13 14:33:50 -06:00
Markus Triska
721cf20cf7
shift morphing to the more general p/2 case
2023-10-12 23:32:04 +02:00
Markus Triska
6ed9a99832
ENHANCED: Omit unnecessary residual constraints in disentailed reified (//)/2
...
Example:
?- #\ 0#=(Y// -1)/0.
%@ clpz:(Y in inf..sup).
This addresses #2104 .
2023-10-12 23:32:04 +02:00
Mark
1163d14ea1
fix control construct bugs, iter indentation ( #947 )
2023-10-11 12:41:45 -06:00
Mark
902b08e657
follow marked variables to end in eager_stackful_iter ( #2100 , #2101 )
2023-10-10 20:45:08 -06:00
Markus Triska
8de3498e07
use round brackets around operators to form valid Prolog terms
2023-10-10 21:32:45 +02:00
Markus Triska
26fdf83a48
update comment to reflect the used propagators
2023-10-10 21:32:45 +02:00
Markus Triska
32af047925
remove definition and calls of do_queue/0, which has become a NOP
2023-10-10 21:32:45 +02:00
Markus Triska
282633c877
ENHANCED: Queue morphed propagators to give them a chance for propagation.
...
This addresses #2096 :
?- B in -2..0, 0#<==>0#=0/(B*B),labeling([],[B]).
B = 0.
?- A#<==>A#=A/A^2,A=0.
A = 0.
2023-10-10 21:32:45 +02:00
Mark
77de570aa4
report pre-marked values from eager stackful iterator ( #2097 )
2023-10-10 12:56:27 -06:00
Mark Thom
c9df19ca30
Merge pull request #2094 from triska/unary_minus
...
ENHANCED: use (+)/2 to express unary minus
2023-10-09 15:06:09 -06:00
Markus Triska
7c1cd18a06
Z --> Y
2023-10-09 23:13:09 +02:00
Markus Triska
8329d222cb
ENHANCED: use (+)/2 to express unary minus
...
This makes answers a bit shorter and more readable.
Example:
?- X #= -Y.
clpz:(X+Y#=0).
This addresses #2058 .
2023-10-09 22:59:51 +02:00
Markus Triska
1c3df1cdd7
attach the propagator to Y
2023-10-09 21:55:39 +02:00
Markus Triska
99348ec309
ENHANCED: Omit projection of morphed (^)/2 in disentailed constraints.
...
Example:
?- B #<==> (0^Y/0) #= Z.
B = 0, clpz:(Y in 0..sup), clpz:(Z in inf..sup).
2023-10-09 21:33:04 +02:00
Markus Triska
cacc7f3193
FIXED: Queue triggered propagators to be processed after pexp/3 finishes
...
If reification constraints (such as reified equality) are triggered
here, then they may wish to disable this propagator and remove
attributes from auxiliary variables. If the pexp/3 propagation is
interrupted for that purpose, then the attributes will be
unintentionally reattached by the following fd_put/3 calls in this
propagator. We must ensure that this propagator completely finishes,
so we queue the triggered propagators for later processing.
geq/2 implements propagator activation outside the queue, and thus
should not be used in propagators in the way it was used here.
pexp/3 by itself may not seem particularly important. However, it can
arise by metamorphosis from Var*Var. Example:
?- A#<==> -1#=C*C, C in 0..1.
A = 0, clpz:(C in 0..1).
This addresses #2089 .
2023-10-09 20:42:28 +02:00
Mark
4b9cf0952e
do not push stack variables to the heap in term_variables ( #2087 )
2023-10-09 11:38:17 -06:00