コード例 #1
0
 public Polynomial add(Polynomial px) {
   Polynomial result = new Polynomial();
   double coef;
   double power;
   Polynomial[] list = {this, px};
   for (int i = 0; i < list.length; i++) {
     for (Map.Entry<Double, Double> e : list[i].entrySet()) {
       power = e.getKey();
       coef = e.getValue();
       if (result.containsKey(power)) {
         coef += result.get(power);
       }
       result.put(power, coef);
     }
   }
   return result;
 }
コード例 #2
0
  /**
   * checks if two polynomials are equal, to a tolerance
   *
   * @param px comparison polynomial
   * @param TOL the difference between the coefficients acceptable
   * @return true/false : the polynomials are equal
   */
  public boolean equals(Polynomial px, double TOL) {
    this.clean();
    px.clean();
    if (this.size() != px.size()) {
      return false;
    } else {
      double coef;
      double exponent;

      Iterator<Map.Entry<Double, Double>> iter = this.entrySet().iterator();
      while (iter.hasNext()) {
        Map.Entry<Double, Double> e = iter.next();
        coef = e.getValue();
        exponent = e.getKey();
        if (Math.abs(coef - px.get(exponent)) > TOL) {
          return false;
        }
      }
      return true;
    }
  }