Today I stumbled over a problem. The short form is that I goofed in my implementation of jtDfromQ in k.c. I might have this fixed in an hour or so, or it might take me longer. (I'm going to get breakfast, first.)
Long form: phi=: (+%)/1e3#1x 0.0+phi 1.61803 0.0+2*phi 3.23607 0.0+_1+2*phi 2.23607 0.0+*~_1+2*phi 4.25353e38 So I built a program in C to mimic this calculation: #include <gmp.h> #include <stdio.h> int main() { // golden ratio as continued fraction mpq_t one; mpq_init(one); mpq_set_ui(one, 1, 1); mpq_t phi; mpq_init(phi); mpq_set_ui(phi, 1, 1); for (int j= 0; j<999; j++) { mpq_div(phi, one, phi); mpq_add(phi, one, phi); } printf("phi: %g -- %s\n", mpq_get_d(phi), mpq_get_str(0, 10, phi)); mpq_t two; mpq_init(two); mpq_set_ui(two, 2, 1); mpq_t phi2; mpq_init(phi2); mpq_mul(phi2, two, phi); printf("2*phi: %g -- %s\n", mpq_get_d(phi2), mpq_get_str(0, 10, phi2)); mpq_t sqr5; mpq_init(sqr5); mpq_sub(sqr5, phi2, one); printf("square root of 5: %g -- %s\n", mpq_get_d(sqr5), mpq_get_str(0, 10, sqr5)); mpq_t five; mpq_init(five); mpq_mul(five, sqr5, sqr5); printf("5: %g -- %s\n", mpq_get_d(five), mpq_get_str(0, 10, five)); } and built it with cc -g sq5.c -o sq5 -lgmp It displayed: phi: 1.61803 -- 70330367711422815821835254877183549770181269836358732742604905087154537118196933579742249494562611733487750449241765991088186363265450223647106012053374121273867339111198139373125598767690091902245245323403501/43466557686937456435688527675040625802564660517371780402481729089536555417949051890403879840079255169295922593080322634775209689623239873322471161642996440906533187938298969649928516003704476137795166849228875 2*phi: 3.23607 -- 140660735422845631643670509754367099540362539672717465485209810174309074236393867159484498989125223466975500898483531982176372726530900447294212024106748242547734678222396278746251197535380183804490490646807002/43466557686937456435688527675040625802564660517371780402481729089536555417949051890403879840079255169295922593080322634775209689623239873322471161642996440906533187938298969649928516003704476137795166849228875 square root of 5: 2.23607 -- 97194177735908175207981982079326473737797879155345685082728081084772518818444815269080619149045968297679578305403209347401163036907660573971740862463751801641201490284097309096322681531675707666695323797578127/43466557686937456435688527675040625802564660517371780402481729089536555417949051890403879840079255169295922593080322634775209689623239873322471161642996440906533187938298969649928516003704476137795166849228875 5: 5 -- 9446708185759308415384067495999677431530963218480368032804826598281856324445977322684945038267086094364761366000137291348836189673785457326607903364013465483957273836804336595888397782139002535468799414419546535346394066447256463745311310661259359973909189379826722425332112242554370313063917929424669185186291673823764654829513873821477637371237697744102254002802127905427315493403711022179894479121632130910668828129/1889341637151861683076813499199935486306192643696073606560965319656371264889195464536989007653417218872952273200027458269767237934757091465321580672802693096791454767360867319177679556427800507093759882883909307069278813289451292749062262132251871994781837875965344485066422448510874062612783585884933837037258334764752930965902774764295527474247539548820450800560425581085463098680742204435978895824326426182133765625 Comparing with my J session: phi 70330367711422815821835254877183549770181269836358732742604905087154537118196933579742249494562611733487750449241765991088186363265450223647106012053374121273867339111198139373125598767690091902245245323403501r4346655768693745643568852767504062580256466051... 2*phi 140660735422845631643670509754367099540362539672717465485209810174309074236393867159484498989125223466975500898483531982176372726530900447294212024106748242547734678222396278746251197535380183804490490646807002r434665576869374564356885276750406258025646605... (2*phi)-1 97194177735908175207981982079326473737797879155345685082728081084772518818444815269080619149045968297679578305403209347401163036907660573971740862463751801641201490284097309096322681531675707666695323797578127r4346655768693745643568852767504062580256466051... *~(2*phi)-1 9446708185759308415384067495999677431530963218480368032804826598281856324445977322684945038267086094364761366000137291348836189673785457326607903364013465483957273836804336595888397782139002535468799414419546535346394066447256463745311310661259359973909189... (And if I take the C value for five, replace '/' with 'r' and compare it to ":*~(2*phi)-1 the values are identical.) So, anyways... I need to figure out where I went wrong in jtDfromQ. Thanks, -- Raul ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm