<div dir="ltr">Dear Sir/Madam<div><br></div><div>I see that there is very little example programs for beginners to start coding using PPL library, </div><div>It would be of great help if you can kindly help me in this direction.</div><div><br></div><div>I managed to write a simple code to create a PPL <span style="white-space:pre">NNC_Polyhedron</span> object named myPoly and assigned linear constraints (values of the form Ax <= b) where A is the coefficient matrix (boost library) and vector b is the bound values of the linear constraints. </div><div><div><br class="gmail-Apple-interchange-newline"><br></div><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">PPL_Polyhedron(math::matrix<double> A, std::vector<double> b, int sgn){<br></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="gmail-Apple-tab-span" style="white-space:pre">    </span>int noOfCons = A.size1();<br><span class="gmail-Apple-tab-span" style="white-space:pre">   </span>int dim = A.size2();<br><span class="gmail-Apple-tab-span" style="white-space:pre">        PPL::NNC_Polyhedron  </span>myPoly = PPL:: NNC_Polyhedron(dim);<br><span class="gmail-Apple-tab-span" style="white-space:pre">    </span>for(int j=0;j<noOfCons;j++)<br><span class="gmail-Apple-tab-span" style="white-space:pre">      </span>{<br><span class="gmail-Apple-tab-span" style="white-space:pre">           </span>PPL :: Linear_Expression expr;<br><span class="gmail-Apple-tab-span" style="white-space:pre">              </span>PPL :: Linear_Expression ex;<br><span class="gmail-Apple-tab-span" style="white-space:pre">                </span>for (int i=0;i<dim;i++)<br><span class="gmail-Apple-tab-span" style="white-space:pre">          </span>{<br><span class="gmail-Apple-tab-span" style="white-space:pre">                   </span>PPL :: Variable var(i);<br><span class="gmail-Apple-tab-span" style="white-space:pre">                     </span>PPL :: Linear_Expression ep=var;<br><span class="gmail-Apple-tab-span" style="white-space:pre">                    </span>ep.set_coefficient(var,A(j,i));<br><span class="gmail-Apple-tab-span" style="white-space:pre">                     </span>if(i==0)<br><span class="gmail-Apple-tab-span" style="white-space:pre">                            </span>expr=ep;<br><span class="gmail-Apple-tab-span" style="white-space:pre">                    </span>else {<br><span class="gmail-Apple-tab-span" style="white-space:pre">                              </span>PPL :: Linear_Expression e(expr+ep);<br><span class="gmail-Apple-tab-span" style="white-space:pre">                                </span>expr=e;<br><span class="gmail-Apple-tab-span" style="white-space:pre">                     </span>}<br><span class="gmail-Apple-tab-span" style="white-space:pre">           </span>}<br><span class="gmail-Apple-tab-span" style="white-space:pre">           </span>if(sgn==1){<span class="gmail-Apple-tab-span" style="white-space:pre">   </span>//sgn==1 for <=<br><span class="gmail-Apple-tab-span" style="white-space:pre">                  </span>PPL :: Constraint c= operator<=(expr, b[j]);<br><span class="gmail-Apple-tab-span" style="white-space:pre">                     </span>myPoly.add_constraint(c);<br><span class="gmail-Apple-tab-span" style="white-space:pre">           </span>} else if(sgn==2){<span class="gmail-Apple-tab-span" style="white-space:pre">    </span>//sgn==2 for >=<br><span class="gmail-Apple-tab-span" style="white-space:pre">                  </span>PPL :: Constraint c= operator>=(expr, b[j]);<br><span class="gmail-Apple-tab-span" style="white-space:pre">                     </span>myPoly.add_constraint(c);<br><span class="gmail-Apple-tab-span" style="white-space:pre">           </span>}  else if(sgn==0){<span class="gmail-Apple-tab-span" style="white-space:pre">  </span>//sgn==0 for =<br><span class="gmail-Apple-tab-span" style="white-space:pre">                      </span>PPL :: Constraint c= operator==(expr, b[j]);<br><span class="gmail-Apple-tab-span" style="white-space:pre">                        </span>myPoly.add_constraint(c);<br><span class="gmail-Apple-tab-span" style="white-space:pre">           </span>}<br><span class="gmail-Apple-tab-span" style="white-space:pre">   </span>}<br>}</blockquote></div><div><br clear="all"></div></div><div><br></div><div>I see that after this I was able to perform some of the operation such as <b>contains, poly_hull_assign, etc.</b> However, I observe that this works only for <b>INTEGER</b> coefficients values. <b>But it is incorrect when the supplied A and b values are of type double.</b> Could you please direct what am I missing? Or am I going on the wrong direction in this creation?</div><div><br></div><div>I would appreciates for any help in this direction. </div><div><br></div><div>Thanking you</div><div>Regards</div><div><br></div><div>-- <br><div class="gmail_signature"><div dir="ltr"><div dir="ltr">Praying for your good health,<div><br></div><div><b>Amit Gurung</b><br></div></div></div></div>
</div></div>