Example #1
0
 std::string DiscreteTerm::toString() const {
     std::stringstream ss;
     ss << LinguisticTerm::toString();
     ss << "Discrete (";
     for (int i = 0; i < numberOfCoords(); ++i) {
         ss << "{" << _x[i] << "," << _y[i] << "}";
         if (i < numberOfCoords() - 1) {
             ss << " ";
         }
     }
     ss << ")";
     return ss.str();
 }
Example #2
0
void Initial::setCoordString()
{
    int ylen = numberOfCoords();
    string *coordList = new string[ylen];
    int i = startPoint();
    int j = 0;
    string str = "";

    /*List of strings. Each string is a coordinate
     *pair.*/
    while(j<ylen)
    {
        while(i<buffer.length() && buffer[i]!=')')
            str+=buffer[i++];
        //Grabs )
        if(i<buffer.length())
             str+=buffer[i++];

        //Skips comma inbetween ) (
        i++;
        coordList[j++] = str;
        str = "";
    }
    setCoord(coordList,ylen);
}
Example #3
0
 flScalar DiscreteTerm::maximum() const {
     flScalar result = -INFINITY;
     for (int i = 0; i < numberOfCoords(); ++i) {
         if (_x[i] > result) {
             result = _x[i];
         }
     }
     return isinf(result) ? NAN : result;
 }
 flScalar DiscreteTerm::maximum() const {
     flScalar result = -(log (0.0));
     for (int i = 0; i < numberOfCoords(); ++i) {
         if (_x[i] > result) {
             result = _x[i];
         }
     }
     return isinfa(result) ? sqrt(-1.0) : result;
 }
Example #5
0
 flScalar DiscreteTerm::membership(flScalar crisp) const {
     flScalar closer = INFINITY;
     flScalar result = NAN;
     for (int i = 0; i < numberOfCoords(); ++i) {
         if (fabs(crisp - _x[i]) < closer) {
             closer = fabs(crisp - _x[i]);
             result = _y[i];
         }
     }
     return result;
 }