
Maths my field too (I thought you might figure that out of the expression 'Z[sqrt(2)])(log(2))' ) but now I do not understand your original point (9)
Sorry about that. It looks like I got some words got cut out from my original post at 9). Basically it's a choice between: //first implementation of "set_precision" rational a,b; a.set_precision(50); //a's precision now set at 50 b.set_precision(150) //b's precision now set at 150, a's precision still at 50 //Do some math cout << (a + b) << endl << (b + a) //issues with the return values of the expressions here //second implementation rational a,b; set_precision(25) //a's and b's precision now at 25 I much prefer doing things the second way, but I wanted to get some comments. Thread safety will be an issue the second way.
Anyway I can say I agree with you on almost everything. Do you want to move forward with this idea?
I'd like to. I discovered N1692 and N1794 while looking through the C++0x proceedings yesterday. Here is the second: http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/n1781.pdf It is a proposal for an arbitrary integer library. It doesn't really say anything about implementation, but I think that I'll follow its guidelines -- whether it is adopted or not (has it been already? -- I don't know the comittee process), it's a good interface. Once that is finished, I'll get started on the rationals side of things. Joel Eidsath