Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Lifeware
biocham
Commits
07c43fde
Commit
07c43fde
authored
Feb 06, 2020
by
Sylvain Soliman
Browse files
satisfaction_degree with a mode, to allow reuse of binary
parent
905091e9
Changes
2
Hide whitespace changes
Inline
Side-by-side
foltl.pl
View file @
07c43fde
...
...
@@ -19,6 +19,7 @@
expand_formula
/
2
,
validity_domain
/
2
,
satisfaction_degree
/
3
,
satisfaction_degree
/
4
,
generate_domain_cpp
/
1
,
generate_domain_cpp
/
2
,
generate_objective
/
1
,
...
...
@@ -385,39 +386,52 @@ validity_domain(Formula, Domain) :-
satisfaction_degree
(
Formula
,
Objective
,
SatisfactionDegree
)
:-
satisfaction_degree
(
Formula
,
Objective
,
SatisfactionDegree
,
standard
).
satisfaction_degree
(
Formula
,
Objective
,
SatisfactionDegree
,
Mode
)
:-
compute_domain
(
'satisfaction_degree.cc'
,
Formula
,
some
(
Objective
),
SatisfactionDegree
'satisfaction_degree.cc'
,
Formula
,
some
(
Objective
),
SatisfactionDegree
,
Mode
).
:-
devdoc
(
'\\section{Private predicates}'
).
compute_domain
(
CppProgram
,
Formula
,
Objective
,
Result
)
:-
compute_domain
(
CppProgram
,
Formula
,
Objective
,
Result
,
Mode
)
:-
CFilename
=
'check.inc'
,
TableFilename
=
'check.csv'
,
ExecutableFilename
=
'check'
,
expand_formula
(
Formula
,
ExpandedFormula
),
with_clean
(
[
foltl
:
column
/
2
],
(
populate_table_columns
,
with_output_to_file
(
CFilename
,
(
generate_domain_cpp
(
ExpandedFormula
),
(
% generate executable if normal mode (standard) or first of a loop
memberchk
(
Mode
,
[
standard
,
first
])
->
expand_formula
(
Formula
,
ExpandedFormula
),
with_clean
(
[
foltl
:
column
/
2
],
(
populate_table_columns
,
with_output_to_file
(
CFilename
,
(
Objective
=
some
(
Objective0
)
->
generate_objective
([
Objective0
])
;
true
generate_domain_cpp
(
ExpandedFormula
),
(
Objective
=
some
(
Objective0
)
->
generate_objective
([
Objective0
])
;
true
)
)
)
)
)
),
compile_domain_cpp_program
(
CppProgram
,
ExecutableFilename
)
;
% just reuse existing ExecutableFilename
true
),
compile_domain_cpp_program
(
CppProgram
,
ExecutableFilename
),
export_table
(
TableFilename
),
call_subprocess
(
ExecutableFilename
,
[
TableFilename
],
[
stdout
(
pipe
(
ResultStream
))]
...
...
@@ -431,8 +445,19 @@ compute_domain(CppProgram, Formula, Objective, Result) :-
(
have_to_delete_temporary_files
->
delete_file
(
CFilename
),
delete_file
(
ExecutableFilename
),
(
memberchk
(
Mode
,
[
standard
,
last
])
->
delete_file
(
ExecutableFilename
)
;
% keep executable if mode is first or loop
Mode
==
first
->
% remove .inc file if first
delete_file
(
CFilename
)
;
true
),
delete_file
(
TableFilename
)
;
true
...
...
search.pl
View file @
07c43fde
...
...
@@ -336,7 +336,18 @@ robustness_aux(
normal_sample
(
ParameterList
,
VariationCoefficient
),
numerical_simulation
,
debug
(
robustness
,
"Satisfaction for ~w with ~w~n"
,
[
Formula
,
Objective
]),
satisfaction_degree
(
Formula
,
Objective
,
Degree
),
(
J
==
1
->
Mode
=
first
;
J
==
NSamples
->
Mode
=
last
;
Mode
=
loop
),
satisfaction_degree
(
Formula
,
Objective
,
Degree
,
Mode
),
debug
(
robustness
,
"Satisfaction: ~w~n"
,
[
Degree
]),
nb_getval
(
robustness_mean
,
Mean
),
% nb_getval(robustness_ssd, Ssd),
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment