Core and Extensions

Coordinator
Jun 25, 2011 at 7:42 PM

I am planning on splitting AutoDiff into two assemblies - the core assembly will be called AutoDiff and an extensions assembly that will be called AutoDiff.Extensions.

The core assembly will contain the current library along with some improvements. The extensions assembly will contain features that are nice to have but can be easily implemented using the core (for example - a power function having two terms, squared difference function and other common functions).

Any ideas? Comments? Something else?

Jun 28, 2011 at 10:47 PM

What would be gained? The library certainly is not overblown at all, and even with such additions it would still be a small library, right?

I fear it would just add complexity. People might be confused why there are two things, and right now I cannot really see a good reason for it myself.

Also, this might make things less elegant. Wouldn't I have to use TermBuilder.Power() when I use a double as the exponent, but something like TermBuilderInExtension.Power() when I want to use a term as the exponent? Wouldn't it be nicer to always be able to use TermBuilder.Power(), and then cover these cases via method overloads?

Or am I missing something completely here? :)

Coordinator
Jun 29, 2011 at 5:21 PM

Well, the power function is a bad example. But sum-of-squares  and square-difference should not be part of the core. They don't operate on terms but on arrays of terms, but are useful for common least-squares optimization algorithms (that minimize the mean squared error).

Alex.

Jun 29, 2011 at 5:24 PM

Fully agreed :)