From ac81aad5e6e3d9a1c2bb6c1e48010ecec79afa87 Mon Sep 17 00:00:00 2001
From: abid <chiheb.abid@gmail.com>
Date: Tue, 11 Feb 2020 12:26:43 +0100
Subject: [PATCH] =?UTF-8?q?=09modifi=C3=A9=C2=A0:=20=20=20=20=20=20=20=20?=
 =?UTF-8?q?=20src/CMakeLists.txt=20=09modifi=C3=A9=C2=A0:=20=20=20=20=20?=
 =?UTF-8?q?=20=20=20=20src/MCHybridSOG.cpp=20=09modifi=C3=A9=C2=A0:=20=20?=
 =?UTF-8?q?=20=20=20=20=20=20=20src/ModelCheckLace.cpp=20=09modifi=C3=A9?=
 =?UTF-8?q?=C2=A0:=20=20=20=20=20=20=20=20=20src/main.cpp=20=09modifi?=
 =?UTF-8?q?=C3=A9=C2=A0:=20=20=20=20=20=20=20=20=20src/sylvan=5Fsog.c?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/.MCHybridSOG.h.kate-swp | Bin 0 -> 67 bytes
 src/CMakeLists.txt          |  29 +++++++++++++++++++----------
 src/MCHybridSOG.cpp         |   9 +++------
 src/ModelCheckLace.cpp      |  18 ++++++++----------
 src/main.cpp                |  25 ++-----------------------
 src/sylvan_sog.c            |   3 ++-
 6 files changed, 34 insertions(+), 50 deletions(-)
 create mode 100644 src/.MCHybridSOG.h.kate-swp

diff --git a/src/.MCHybridSOG.h.kate-swp b/src/.MCHybridSOG.h.kate-swp
new file mode 100644
index 0000000000000000000000000000000000000000..a65057426854c2e2438dac15c8c74a0492744abb
GIT binary patch
literal 67
zcmZQzU=Z?7EJ;-eE>A2_aLdd|RWQ;sU|?VnSy!;$PTlh1i8FSq6_Z>lm<}%ZEf5^a
Pz`zjT3Z_CKRIn=mk#7?0

literal 0
HcmV?d00001

diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 2f27223..4231a5f 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -9,16 +9,27 @@ include_directories(${MPI_INCLUDE_PATH})
 find_package(OpenSSL)
 include_directories(${OPENSSL_INCLUDE_DIR})
 
-# include spot library
-add_library(spot STATIC IMPORTED)
-set_target_properties(spot PROPERTIES IMPORTED_LOCATION "${SPOT_DIR}/lib/libspot.a")
+include_directories("${CMAKE_SOURCE_DIR}/third-party/sylvan/src")
+
+
+add_library(spot SHARED IMPORTED) # or STATIC instead of SHARED
+set_target_properties(spot PROPERTIES
+  IMPORTED_LOCATION "/usr/lib/x86_64-linux-gnu/libspot.so"
+  INTERFACE_INCLUDE_DIRECTORIES "/usr/include/spot/"
+)
+
+add_library(bddx SHARED IMPORTED) # or STATIC instead of SHARED
+set_target_properties(bddx PROPERTIES
+  IMPORTED_LOCATION "/usr/lib/x86_64-linux-gnu/libbddx.so"
+  INTERFACE_INCLUDE_DIRECTORIES "/usr/include/spot/"
+)
+
+
+
 
-# include bddx library
-add_library(bddx STATIC IMPORTED)
-set_target_properties(bddx PROPERTIES IMPORTED_LOCATION "${SPOT_DIR}/lib/libbddx.a")
 
 # Hybrid SOG executable
-add_executable(pmc-sog main.cpp
+add_executable(hybrid-sog main.cpp
   NewNet.cpp
   NewNet.h
   CommonSOG.cpp
@@ -69,7 +80,7 @@ add_executable(pmc-sog main.cpp
   HybridKripkeState.h
   )
 
-target_link_libraries(pmc-sog
+target_link_libraries(hybrid-sog
   bddx
   spot
   sylvan
@@ -77,5 +88,3 @@ target_link_libraries(pmc-sog
   ${MPI_LIBRARIES}
   ${OPENSSL_LIBRARIES}
 )
-
-add_dependencies(pmc-sog SpotLibrary)
diff --git a/src/MCHybridSOG.cpp b/src/MCHybridSOG.cpp
index 1ed2bc9..c0d31b8 100644
--- a/src/MCHybridSOG.cpp
+++ b/src/MCHybridSOG.cpp
@@ -567,13 +567,10 @@ void MCHybridSOG::read_message()
              uint16_t id_p=i_agregate->getProcess();             
              memcpy(message+16,&id_p,2);            
              MPI_Send(message,22,MPI_BYTE,m_status.MPI_SOURCE, TAG_ACK_INITIAL, MPI_COMM_WORLD);
-             break;
-       
-        
-        
-        default:  cout<<"unknown received "<<m_status.MPI_TAG<<" by task "<<task_id<<endl;
+             break;        
+        /*default:  cout<<"unknown received "<<m_status.MPI_TAG<<" by task "<<task_id<<endl;
             //AbortTerm();
-            break;           
+            //break;    */       
         }
         
         MPI_Iprobe(MPI_ANY_SOURCE,MPI_ANY_TAG,MPI_COMM_WORLD,&flag,&m_status);
diff --git a/src/ModelCheckLace.cpp b/src/ModelCheckLace.cpp
index 2db8f3e..740269a 100644
--- a/src/ModelCheckLace.cpp
+++ b/src/ModelCheckLace.cpp
@@ -33,7 +33,7 @@ void ModelCheckLace::preConfigure() {
     print_h(max);
     printf(" max.\n");
     LACE_ME;
-    sylvan_set_limits(max, 16, 2);
+    sylvan_set_limits(max, 16, 1);
     sylvan_init_package();
     sylvan_init_ldd();
     
@@ -58,7 +58,7 @@ void ModelCheckLace::preConfigure() {
         cout<<(*it2).first<<" : "<<(*it2).second<<endl;
     }*/
     //cout<<"Transitions observables :"<<endl;
-    Set::iterator it=m_observable.begin();
+    //Set::iterator it=m_observable.begin();
     /*for (; it!=m_observable.end(); it++)
     {
         cout<<*it<<"  ";
@@ -133,20 +133,16 @@ TASK_3 (MDD, Aggregate_epsilon_lace, MDD, From, Set*, nonObservable, vector<Tran
 {
     MDD M1;
     MDD M2=From;
-    int it=0;
-    /*lddmc_refs_pushptr(&M1);
-    lddmc_refs_pushptr(&M2);*/
-    cout<<"worker "<<lace_get_worker()->worker<<endl;
-    
+      
     do
     {
         M1=M2;
-        for(Set::const_iterator i=nonObservable->begin(); !(i==nonObservable->end()); i++)
+        for(Set::iterator i=nonObservable->begin(); !(i==nonObservable->end()); i++)
         {
             lddmc_refs_spawn(SPAWN(lddmc_firing_lace,M2,(*tb_relation)[(*i)].getMinus(),(*tb_relation)[(*i)].getPlus()));
         }
       
-        for(Set::const_iterator i=nonObservable->begin(); !(i==nonObservable->end()); i++)
+        for(Set::iterator i=nonObservable->begin(); !(i==nonObservable->end()); i++)
         {
             lddmc_refs_push(M1);
             lddmc_refs_push(M2);
@@ -155,6 +151,8 @@ TASK_3 (MDD, Aggregate_epsilon_lace, MDD, From, Set*, nonObservable, vector<Tran
             M2=lddmc_union(succ,M2);
             lddmc_refs_pop(3);
         }
+        cout<<"M1 :"<<M1<<endl;
+        cout<<"M2 :"<<M2<<endl;
 
     }
     while (M1!=M2);
@@ -237,7 +235,7 @@ LDDState * ModelCheckLace::getInitialMetaState()
     // Compute successors
     unsigned int onb_it=0;
     Set::iterator iter=fire.begin();
-    int j=0;
+    
     while(iter!=fire.end())
     {
         
diff --git a/src/main.cpp b/src/main.cpp
index 0975099..eca2813 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -349,19 +349,8 @@ int main(int argc, char** argv)
 
                     auto d = spot::make_bdd_dict();
                     spot::twa_graph_ptr af = spot::translator(d).run(not_f);
-
-                    /*         spot::twa_graph_ptr k =spot::make_twa_graph(std::make_shared<HybridKripke>(d,Rnewnet.getListTransitionAP(),Rnewnet.getListPlaceAP(),Rnewnet),spot::twa::prop_set::all(), true);
-                               cout<<"finished...."<<endl;
-
-
-                               fstream file;
-                               string st(argv[3]);
-                               st+=".dot";
-                               file.open(st.c_str(),fstream::out);
-                               spot::print_dot(file, k,"ka");
-                               file.close(); */
+                
                     double tps;
-
                     auto t1 = std::chrono::high_resolution_clock::now();
                     auto k =
                         std::make_shared<HybridKripke>(d,Rnewnet.getListTransitionAP(),Rnewnet.getListPlaceAP(),Rnewnet);
@@ -372,9 +361,7 @@ int main(int argc, char** argv)
                         std::cout << "temps de verification "
                                   << std::chrono::duration_cast<std::chrono::milliseconds>(t2-t1).count()
                                   << " milliseconds\n";
-
                         cout<<"=================================="<<endl;
-
                     }
                     else
                     {
@@ -385,27 +372,19 @@ int main(int argc, char** argv)
                                   << " milliseconds\n";
 
                     }
-
                 }
-
             }
-
-
         }
         else
-        {
-            //cout<<" sequential version using Sylvan : 1 with BuDDy : 2 \n" <<endl;
+        {           
             cout<<"*************Distibuted version******************* \n" <<endl;
             {
                 DistributedSOG DR(Rnewnet, bound);
                 LDDGraph g(nullptr);
                 DR.computeDSOG(g);
             }
-
-
         }
     }
-
     MPI_Finalize();
     return (EXIT_SUCCESS);
 }
diff --git a/src/sylvan_sog.c b/src/sylvan_sog.c
index 152af82..80424bb 100644
--- a/src/sylvan_sog.c
+++ b/src/sylvan_sog.c
@@ -66,7 +66,8 @@ TASK_IMPL_3(MDD, lddmc_firing_lace, MDD, cmark, MDD, minus, MDD ,plus) {
         MDD left=lddmc_refs_sync(SYNC(lddmc_firing_lace));
         lddmc_refs_push(left);
         MDD result2 =
-                lddmc_makenode(l_values[count],left, lddmc_false);            
+                lddmc_makenode(l_values[count],left, lddmc_false);      
+        if (l_values[count]>5) printf("%d ",l_values[count]);
         lddmc_refs_push(result2);    
         result = lddmc_union( result, result2);  
         lddmc_refs_pop(3);
-- 
GitLab