code: @Override
      public double membership(double x) {
          if (Double.isNaN(x)) {
              return Double.NaN;
          }
          if (Op.isLt(x, center - 0.5 * width)
                  || Op.isGt(x, center + 0.5 * width)) {
              return height * 0.0;
          }
          return height * (0.5 * (1.0 + Math.cos(2.0 / width * Math.PI * (x - center))));
      }
docs: Computes the membership function evaluated at `x`
  
  @param x
  @return `\begin{cases} 0h & \mbox{if $x < c - 0.5w \vee x > c + 0.5w$}
  \cr 0.5h \times ( 1 + \cos(2.0 / w\pi(x-c))) & \mbox{otherwise}
  \end{cases}`
  
  where `h` is the height of the Term,
  `c` is the center of the Cosine,
  `w` is the width of the Cosine