> >> [...]
> >> The question is thus: Is it OK to provide pointless methods?
> >> I also wonder whether it is reasonable to _generate_ state variables just
> >> so that the accessors can return them.
> >> Usually, when a exception is constructed, it is _passed_ data that provide
> >> the context of the failure (i.e. the vectors or the indices that show the
> >> problem).
> >> In this case, if the test (that triggered the exception) was not performed
> >> using vectors, it looks quite strange to be able to retrieve vectors...
> >> 
> >> 
> > OK, Gilles, sorry, I do not want to offend anyone, nor do I think I'm the 
> > best
> > judge of all solutions proposed so far. I agree that constructing vectors 
> > just
> > for the sake of having one exception inherit from another is far-fetched. 
> > I'm
> > actually impressed by the depth of the discussions! You all DO think a lot
> > about the overall design of this library (well, I guess you have too, but
> > still).

Certainly, no offense taken!
Your use-case did provide an interesting viewpoint.

> > So if I understand correctly, we are back to one base classe which does 
> > pretty
> > much nothing, and two derived exceptions
> > 1. one raised when coefficients of the matrix are accessible, and a(i,j) !=
> > a(j,i) (within a specified tolerance),
> > 2. one raised when coefficients of the matrix are not accessible, and x'.A.y
> > != y'.A.x
> > 
> > So we still need a little bit of terminology there... For your information,
> > I've decided to call (for lack of a better name) LargeRealMatrix the 
> > interface
> > corresponding to matrices defined only by their matrix-vector product y = 
> > A.x.
> > These objects are the basic brick of the iterative solvers I'm implementing.
> 
> 
> I would call this a LinearOperator or LinearTransformation.

+1
[With a slight preference for a name containing "Operator" if the
exception's name will contain it too (cf. below).]

> > 
> > If we agree that a LargeRealMatrix is only defined by this product, then a
> > symmetric, large matrix must be defined as x'.A.y = y'.A.x. (This is 
> > actually
> > the mathematical definition of an adjoint operator). Then, it would be 
> > logical
> > to call the corresponding exception NotASymmetricLargeMatrix, would it not?
> 
> 
> I would see something like NotAdjointOperatorException or as natural here.

Maybe "NonAdjointOperatorException" (like "NonSymmetricMatrixException")?

>   Given the abstract operator context above, there is no reason for this to 
> extend NonSymmetricMatrixException.

+1

> > 
> > Alternatives might be LinearMap, LinearOperator, since we actually define 
> > the
> > matrix A as a function x\mapsto y = A.x, here.
> > 
> > So, it's pretty much your call. You tell me, and I'll update my sources 
> > before
> > comitting them. You can then decide wether it's worth including in
> > commons-math.

Regards,
Gilles

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to