> I'll write the answer you deserve soon, but just one point: according to > the inverse symbolic calculator at http://isc.carma.newcastle.edu.au/index, > 3.17313 is the value (among other things) of (23+11*sqrt(5))/15. I grew up > thinking that phi was the "golden ratio" of (1+sqrt(5))/2 - but I don't see > the immediate connection.
The fact that you can't reverse-engineer a constant without knowing the author's intention IS the immediate connection. There is a great book which is written in a literate programming style called "Implementing Elliptic Curve Cryptography" by Michael Rosing. (I highly recommend this book as an example of literate style) In it Rosing has a C constant DEFINED (I don't have my copy handy so this isn't exact but...) #DEFINE numbits 193 He comments that numbits is arbitrary and can be changed at will. Now suppose you had a copy of the program without the literate text. And suppose you needed a subroutine where "numbits" was locally required to be 255 for some small part of the calculation. It is very likely that you'd either make a new variable "myNumBits" or shadow the global value or hard-code your 255. You'd be forced into this compromise because it might be too time consuming or too difficult to ensure that the code is insenstive to the value of numbits and could be changed globally. Now multiply this change by 30 other people making local "myNumBitsAlso" and you can see the intellectual tangle arise in the code base. In the literate version you know the "author's mind" and can make the global change with confidence and little thought. And as the program is literate you ought to modify the global constant to say #DEFINE numbits 255 This constant is globally free to be changed but the foobar subroutine depends on the value being a minimum of 255. The subroutine uses this as a bitmask to .... Now consider the same situation where you read: PHI = 3.17313 without comment or explanation or any other connection to the theory or the implementation. You get to guess. In a really complex algorithm in an area where you are not the author or not a PhD in that subject it is unlikely that you have the background to guess correctly. Or there may be no background at all since the value might just be a fudge factor that "works". Who knows? The author has failed to communicate. Tim _______________________________________________ Axiom-developer mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/axiom-developer
