
Alp Mestan writes:
I ask for the first, but depending on what you'll show I could ask for the second.
Well, the short answer is that all the obvious main operators are supported. This includes all the comparison operators, the two unary operators, the two additive operators, and the two multiplicative operators. Notable exceptions are things like shift operators, modulo, etc., but that is mainly because I haven't needed them just yet and haven't quite gotten around to implementing them. There are no substantive issues blocking that though.
From the library developers' viewpoint, any or all of these may be implemented using techniques that essentially duplicate those described for the polynomial example. Indeed, I am refactoring my Probability library (which requires a fairly rich set of operators and functions) to use this framework. Thus, if you can imagine a set of domains, appropriate implementations of the operators, and the interconversions, the library should support it.
The long answer, i.e., how _exactly_ to do all this to develop a library, will have to wait a bit more until I can tidy up the code and write more documentation. I'm hoping that won't take too long, so please stay tuned. In the meantime, I really am interested in feedback on the overall design (e.g., idea of making this type of library systematic, the means of providing extensibility, etc.) and improvements in the implementation. Thanks for your interest. Cheers, Brook