<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Hi,</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div>I am a Ph.D. student at the Indian Institute of Science, Bangalore, India.</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
I have been working on a project that requires a polyhedron. <br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
The polyhedron has constraints with floating-point variables, as shown below in the following code snippet.</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Wher <i><b>p,u,v </b></i>and w are f<b>loating-poin</b>t values <b>between 0 and 1, u+v+w =1.</b></div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div style="color:#d4d4d4;background-color:#1e1e1e;font-family:'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback';font-weight:normal;font-size:14px;line-height:19px">
<span><span style="color:#569cd6">
<div style="color:#d4d4d4;background-color:#1e1e1e;font-family:'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback';font-weight:normal">
<span><span style="color:#4ec9b0">Variable</span><span> </span><span style="color:#9cdcfe">xp0</span><span>(</span><span style="color:#b5cea8">0</span><span>);</span></span>
<div><span style="color:#4ec9b0">Variable</span><span> </span><span style="color:#9cdcfe">yp0</span><span>(</span><span style="color:#b5cea8">1</span><span>);</span></div>
<div><span style="color:#4ec9b0">Variable</span><span> </span><span style="color:#9cdcfe">zp0</span><span>(</span><span style="color:#b5cea8">2</span><span>);</span></div>
<br>
<div><span style="color:#4ec9b0">Variable</span><span> </span><span style="color:#9cdcfe">u</span><span>(</span><span style="color:#b5cea8">0</span><span>);</span></div>
<div><span style="color:#4ec9b0">Variable</span><span> </span><span style="color:#9cdcfe">v</span><span>(</span><span style="color:#b5cea8">1</span><span>);</span></div>
<div><span style="color:#4ec9b0">Variable</span><span> </span><span style="color:#9cdcfe">w</span><span>(</span><span style="color:#b5cea8">2</span><span>);</span></div>
<div><span style="color:#4ec9b0">Variable</span><span> </span><span style="color:#9cdcfe">p</span><span>(</span><span style="color:#b5cea8">0</span><span>);</span></div>
</div>
<br>
</span></span></div>
<div style="color:#d4d4d4;background-color:#1e1e1e;font-family:'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback';font-weight:normal;font-size:14px;line-height:19px">
<span><span style="color:#569cd6"><br>
</span></span></div>
<div style="color:#d4d4d4;background-color:#1e1e1e;font-family:'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback';font-weight:normal;font-size:14px;line-height:19px">
<span><span style="color:#569cd6">int</span><span> x0 = </span><span style="color:#9cdcfe">vertices</span><span>[insideVertex*</span><span style="color:#b5cea8">3</span><span>+</span><span style="color:#b5cea8">0</span><span>];</span></span>
<div><span style="color:#569cd6">int</span><span> y0 = </span><span style="color:#9cdcfe">vertices</span><span>[insideVertex*</span><span style="color:#b5cea8">3</span><span>+</span><span style="color:#b5cea8">1</span><span>];</span></div>
<div><span style="color:#569cd6">int</span><span> z0 = </span><span style="color:#9cdcfe">vertices</span><span>[insideVertex*</span><span style="color:#b5cea8">3</span><span>+</span><span style="color:#b5cea8">2</span><span>];</span></div>
<br>
<div><span style="color:#569cd6">int</span><span> x1 = </span><span style="color:#9cdcfe">vertices</span><span>[outsideVertex*</span><span style="color:#b5cea8">3</span><span>+</span><span style="color:#b5cea8">0</span><span>];</span></div>
<div><span style="color:#569cd6">int</span><span> y1 = </span><span style="color:#9cdcfe">vertices</span><span>[outsideVertex*</span><span style="color:#b5cea8">3</span><span>+</span><span style="color:#b5cea8">1</span><span>];</span></div>
<div><span style="color:#569cd6">int</span><span> z1 = </span><span style="color:#9cdcfe">vertices</span><span>[outsideVertex*</span><span style="color:#b5cea8">3</span><span>+</span><span style="color:#b5cea8">2</span><span>];</span></div>
<br>
<br>
<div><span style="color:#9cdcfe">pd</span><span>-></span><span style="color:#dcdcaa">add_constraint</span><span>( u+v+w ==
</span><span style="color:#b5cea8">1</span><span>);</span></div>
<div><span style="color:#9cdcfe">pd</span><span>-></span><span style="color:#dcdcaa">add_constraint</span><span>(  u>=</span><span style="color:#b5cea8">0</span><span>) ;</span></div>
<div><span style="color:#9cdcfe">pd</span><span>-></span><span style="color:#dcdcaa">add_constraint</span><span>( v>=</span><span style="color:#b5cea8">0</span><span>);</span></div>
<div><span style="color:#9cdcfe">pd</span><span>-></span><span style="color:#dcdcaa">add_constraint</span><span>( w>=</span><span style="color:#b5cea8">0</span><span>);</span></div>
<div><span style="color:#9cdcfe">pd</span><span>-></span><span style="color:#dcdcaa">add_constraint</span><span>( p>=</span><span style="color:#b5cea8">0</span><span>);</span></div>
<div><span style="color:#6a9955">// pd->add_constraint( q>=0);</span></div>
<div><span style="color:#6a9955">//  pd->add_constraint( p+q ==1);</span></div>
<div><span style="color:#9cdcfe">pd</span><span>-></span><span style="color:#dcdcaa">add_constraint</span><span>(  ( (( p*(x0 - xp0)+ (</span><span style="color:#b5cea8">1</span><span>-p)*(x1 - xp0)) == (u*-</span><span style="color:#b5cea8">35821</span><span>+v*</span><span style="color:#b5cea8">0</span><span>+(w)*</span><span style="color:#b5cea8">35821</span><span>))
 );</span></div>
<div><span style="color:#9cdcfe">pd</span><span>-></span><span style="color:#dcdcaa">add_constraint</span><span>( ((p*(y0 - yp0)+  (</span><span style="color:#b5cea8">1</span><span>-p)*(y1 - yp0)) == (u*</span><span style="color:#b5cea8">35821</span><span>+v*</span><span style="color:#b5cea8">0</span><span>+(w)*</span><span style="color:#b5cea8">35821</span><span>))
 );</span></div>
<div><span style="color:#9cdcfe">pd</span><span>-></span><span style="color:#dcdcaa">add_constraint</span><span>( ((p*(z0 - zp0)+  (</span><span style="color:#b5cea8">1</span><span>-p)*(z1 - zp0)) == (u*-</span><span style="color:#b5cea8">100000</span><span>+v*</span><span style="color:#b5cea8">0</span><span>+(w)*-</span><span style="color:#b5cea8">100000</span><span>)));</span></div>
<br>
<div><span style="color:#9cdcfe">pd</span><span>-></span><span style="color:#dcdcaa">add_constraint</span><span>( -( (</span><span style="color:#b5cea8">24</span><span>*p*(x0-xp0))+(</span><span style="color:#b5cea8">24</span><span>*(</span><span style="color:#b5cea8">1</span><span>-p)*(x1-xp0)))
 >= ((PixelX - </span><span style="color:#b5cea8">24</span><span>)*(p*(z0-zp0)+ (</span><span style="color:#b5cea8">1</span><span>-p)*(z1-zp0)) ) );</span></div>
<div><span style="color:#9cdcfe">pd</span><span>-></span><span style="color:#dcdcaa">add_constraint</span><span>( -( (</span><span style="color:#b5cea8">24</span><span>*p*(x0-xp0))+(</span><span style="color:#b5cea8">24</span><span>*(</span><span style="color:#b5cea8">1</span><span>-p)*(x1-xp0)))
 < ((PixelX+</span><span style="color:#b5cea8">1</span><span> - </span><span style="color:#b5cea8">24</span><span>)*(p*(z0-zp0)+ (</span><span style="color:#b5cea8">1</span><span>-p)*(z1-zp0)) ) );</span></div>
<br>
<div><span style="color:#9cdcfe">pd</span><span>-></span><span style="color:#dcdcaa">add_constraint</span><span>( (
</span><span style="color:#b5cea8">24</span><span>*p*(y0-yp0) + </span><span style="color:#b5cea8">24</span><span>* (</span><span style="color:#b5cea8">1</span><span>-p)*(y1-yp0) ) >= ( (PixelY-</span><span style="color:#b5cea8">24</span><span>) * (p*(z0-zp0)+
 (</span><span style="color:#b5cea8">1</span><span>-p)*(z1-zp0)) ) );</span></div>
<div><span style="color:#9cdcfe">pd</span><span>-></span><span style="color:#dcdcaa">add_constraint</span><span>( (
</span><span style="color:#b5cea8">24</span><span>*p*(y0-yp0) + </span><span style="color:#b5cea8">24</span><span>* (</span><span style="color:#b5cea8">1</span><span>-p)*(y1-yp0) ) < ( (PixelY-</span><span style="color:#b5cea8">24</span><span>+</span><span style="color:#b5cea8">1</span><span>)
 * (p*(z0-zp0)+ (</span><span style="color:#b5cea8">1</span><span>-p)*(z1-zp0)) ) );</span></div>
<div><span><br>
</span></div>
<div><span><br>
</span></div>
<div><span><br>
</span></div>
</div>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span style="font-size:12pt">While compiling the program, I am getting the following error;</span><br>
<span style="font-size:12pt"></span><br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
error: no match for ‘operator*’ (operand types are ‘Parma_Polyhedra_Library::Variable’ and ‘Parma_Polyhedra_Library::Linear_Expression’)
<div>  116 |                  pd->add_constraint(  ( (( p*(x0 - xp0)+ (1-p)*(x1 - xp0)) == (u*-35821+v*0+(w)*35821)) );</div>
<div>      |                                            ~^~~~~~~~~~~</div>
<div>      |                                            |     |</div>
<div>      |                                            |     Parma_Polyhedra_Library::Linear_Expression</div>
<span>      |                                            Parma_Polyhedra_Library::Variable</span><br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Is there any way to get rid of this error?</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Is it possible to write my constraints using PPL (using either floating-point expression or intervals)?<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Thanks</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
HABEEB<br>
</div>
</body>
</html>