Zeta Function - Printable Version +- HP Forums (https://www.hpmuseum.org/forum) +-- Forum: HP Software Libraries (/forum-10.html) +--- Forum: HP-41C Software Library (/forum-11.html) +--- Thread: Zeta Function (/thread-5559.html) Zeta Function - Namir - 01-19-2016 09:57 PM Here is a program that calculates the Zeta function. The program prompts you for s, the argument for the function, and for the tolerance value (recommend 1e-8). The function places the function's value in the X stack register, Code: ```1    LBL "ZETA"         2    LBL A         3    S?         4    PROMPT         5    STO 0         6    TOLER?         7    PROMPT         8    STO 07        # store tolerance 9    1         10    STO 04        # n=1 11    STO 08        # n! = 1 12    2         13    /         14    STO 01        # OutSum = 1/2 15    LBL 00        #--------------------------- start of outer loop  16    RCL 04        # View n 17    PSE         18    STO 11        # I = n 19    STO* 08        # update n! 20    RCL 08         21    STO 10        # init (n-k)! 22    1         23    STO 03        # k = 1 24    STO 09        # k! =1 25    STO 02        # InSum = 1 26    STO 06        # CHS=1 27    LBL 01        # --------------------------- start of inner loop 28    -1         29    STO* 06        # CHS=-CHS 30    RCL 03         31    STO* 09        # update k! 32    RCL 11         33    X=0?         34    GTO 02         35    STO/ 10        # update (n-k)! 36    1         37    RCL 10         38    X=0?         39    +         40    STO 10         41    1         42    STO- 11        # I = I - 1 43    LBL 02         44    RCL 08         45    RCL 09         46    /         47    RCL 10         48    /         49    RCL 06         50    *         51    RCL 03         52    1         53    +         54    STO 03        # k = k + 1 55    RCL 00         56    Y^X         57    /         58    STO+ 02        # InSum = InSum + ... 59    RCL 04         60    RCL 03         61    X<=Y?        # k<=n? 62    GTO 01        # --------------------------- End of Inner loop 63    RCL 02         64    2         65    RCL 04         66    1         67    +         68    STO 04        # n = n + 1 69    +         70    Y^X         71    /         72    STO+ 01        # OutSum = OutSum + Term 73    ABS         74    RCL 07         75    X<=Y?        # Tolerance <= Term? 76    GTO 00        # --------------------------- End of Outer loop 77    2         78    1         79    RCL 00         80    -         81    Y^X         82    CHS         83    1         84    +        # calculate 1 - 2^(1-s) 85    1/X         86    RCL 01         87    *         88    RTN``` The memory map for the program is: Code: ```R00 = s R01 = Outer Sun, Outer Sum R02 = Inner Sum, Inner Sum R03 = k R04 = n R05 = Term R06 = CHS R07 = Toler R08 = n! R09 = k! R10 = (n-k)! R11 = I``` The function uses a fast converging series (see Wikipedia) and can give results for small arguments of s such as Zeta(1.1). Namir PS: I am aware that Jean-Marie Baillard has a Zeta function implemented in the HP-41C Software Library. His program is shorter than mine and uses just two registers. However, I tried to calculate Zeta(1.1) using his version and I had to stop after the HP-41CX emulator went on and on and on! RE: Zeta Function - Ángel Martin - 01-24-2016 09:25 AM (01-19-2016 09:57 PM)Namir Wrote:  PS: I am aware that Jean-Marie Baillard has a Zeta function implemented in the HP-41C Software Library. His program is shorter than mine and uses just two registers. However, I tried to calculate Zeta(1.1) using his version and I had to stop after the HP-41CX emulator went on and on and on! Hi Namir, I guess you must have something wrong in your V41 setup - or a bad transcription of the program code. I just ran the case x=1.1 using ZETAX in the SandMath (which implements Jean-Marc's Borwein algorithm) and it took 13.48 seconds to return the result 10.58444847. I also ran it for x=1.001, which returned 1,000.577289 in approximately the same time. Both examples done at the default speed, i.e. NOT in TURBO mode. Cheers, 'AM