On Fri, 27 Jan 2012, John Peterson wrote:
>> Any support there for vector-valued functions? It looks like it fixes
> f: R^N -> R^N?
f: R^M -> R^N, but yeah.
> I don't think I've used it that way, but maybe you could wrap your
> own class around several scalar fparser objects...
In hindsight that should have been obvious to me; we need a wrapper
class anyway and (as long as warp's FunctionParser isn't using comma
for any other syntax) comma separation isn't rocket science. It would
prevent optimizations of shared terms with separate indices, but
that's fine; I don't know if mu:: even does that yet.
So that's my first big objection solved. Let me see what else:
It looks like warp's FunctionParser doesn't use namespaces, but if
everything is packed into a FunctionParserblah class then that doesn't
bother me too much.
They're LGPL'ing template code, when I think legally you need
something like the libstdc++ runtime exception in the license if you
want users to be able to do closed-source redistribution of template
instantiations with their own types. But it looks like they're
instantiating all the types we'd want and more anyways.
>> one gaping flaw in mu: support for types other than double. But I
> Well, that may not be an issue any longer?
> Rev 2.1.0: 19.11.2011
> MUP_BASETYPE can now be any of: float, double, long double, short,
> unsigned short, unsigned int, long, unsigned long. Previousely only
> floating point types were allowed. Using "int" is still not allowed!
float and long double support is a good start, but std::complex is the
other big thing I was thinking of. My own libMesh --enable-complex
usage has been strictly in the "let's make sure I don't break this"
and "oops, I broke this, better fix it" categories, but I would still
feel bad about adding features that are real-numbers-only.
I think I slightly prefer the mu APIs but I'm not wedded to them.
So my last question: if I put Warp's fparser in libMesh contrib, will
that be too much of a hassle for you guys when it conflicts with your
apps' local installation?