commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Luc Maisonobe <>
Subject [math] extension to FieldElement
Date Sun, 24 Feb 2013 09:42:52 GMT
Hi all,

I would like to go back to some discussions we had a while ago: adding
some operations on FieldElement. There was one discussion on the dev
list one year ago (see
<>) and a JIRA issue
two years ago (see <>).

Since that time, we have added at least one new Field/FieldElement
implementation: DerivativeStructure. This one has the same domain of
definition as Dfp, i.e. it mimics real numbers only. It already does
implement all operations, including sqrt (returning NaNs when applied to
negative numbers for example).

I already needs this kind of objects for 3D vectors and rotations. You
may have noticed I implemented them specifically for
DerivativeStructure, but I think it would make more sense to implemenbt
it as Vector3D<T extend ExtendedField> so we could have both an
implementation using DerivativeStructure and an implementation using Dfp.

In fact, I think we could later on even add the missing methods to the
Complex class so it could also implement this interface, which would be
closer to the other needs that appeared at least twice on the project.

At the time the issues were raised, it seems we decided to not implement
this because of lack of time and lack of complete use cases among
Complex. Now we have at least another use case (geometry needs for me),
and most of the work is already available (implementation of these
geometry needs for DerivativeStructure only, with a full test suite with
100% line coverage). So It may be worth extracting the interface from
DerivativeStructure. After that, adding the methods to the other Field
classes could be done progressively (Dfp would be the first one to
follow, and would be quite simple as almost everything is already
available in the companion class DfpMath).

What do you think?

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message