[eclipse-clp-users] A constraint with exponentiation

From: liu.yu.senior.china <liu.yu.senior.china_at_gmail.com>
Date: Tue, 15 Sep 2009 16:48:44 -0500
Dear All,

I have a constraint with exponentiation as follows:

 :- lib(ic).
dv(Fs):-
Fs::[18000,20000,22000,24000],
Fmax is 24000,
Fmin is 18000,
Lamda0 is 1e-6,
D is 4,
Si is 1,
Lamda = Lamda0*10^(D*(Fmax-Fs)/(Fmax-Fmin)),
Rfmax = exp(-Lamda*1000000/Fmax/1e5),
Q = (1-Rfmax)^(Si-1),
eval(Q) $>= -1000.

Since Rfmax is close to 1 (0.99..) and Si is 1, Q will be 1. So the constraint is actually redundent and does not have any effect on Fs. However, I get a No as a result. Anything wrong?

My second question is aobut eval/1. By using $>=/2, the goals are suspended  before all variables are instantiated. Then why do I have to use eval? I get errors without it.

If I don't use Q to pass the expresson and use eval((1-Rfmax)^(Si-1)) $>= -1000, I get the same error as I use Q and do not use eval. The error is "some constants are expected".

Any suggestion is appriciated.

Best,

Liu,Yu

2009-09-15 



liu.yu.senior.china 
Received on Tue Sep 15 2009 - 21:49:00 CEST

This archive was generated by hypermail 2.2.0 : Thu Feb 02 2012 - 02:31:58 CET