NEW PAGE

Objects are passed by reference

this works:

  public void    image (Vector d, Vector r) {
    if (! r.getSpace().equals(A.getRange())) { 
      System.err.println("Operator A range differs from space of r");
    }
    r.zero();
    A.image(d,r); 
    r.sub(b);
  }
This fails:

  public void    image (Vector d, Vector r) {
    if (! r.getSpace().equals(A.getRange())) { 
      System.err.println("Operator A range differs from space of r");
    }
    r.zero();
    r = A.image(d); 
    r.sub(b);
  }
You pass a reference r ... than you reset the reference (which at that point looses track of the original r).

This works because, r is created within the object and not passed by reference:

  public Vector  image    ( Vector d) {
    Vector r = range.newMember();
    r = A.image(d); 
    r.sub(b);
    return r; 
  }


matt@hessen