# Rename this file to ".dcrc" and GNU dc will load all these useful routines # everytime it starts. Remember to set the precision with the "k" command. # Factorial (!) # # Ex: "10 lFx p" [ Sx [ Sx 1 sx Lx ]Sm [ d 1 - d 1 n lx lfx 1 sx 1 sm 1 sf 1 sn Lx Lm Lf Ln * * * * ] sF # Exp # # Ex: "10 lEx p" [ Sx [ d lFx r lx r ^ r / ] St [ Lr d 1 + Sr lt x d Sn + Ln 0 !=m ] Sm 1 lx + 2Sr lm x 1 sx 1 st 1 sm 1sr LxLtLmLr * * * * ] sE # Ln # # Try this: # # 5k # 2 lLx p # lEx p # [ 1 - Sx [ Sn lx lx 1 + / ln ^ Ln / ] St [ Lr d 1 + Sr lt x d Sn + Ln 0 !=m ] Sm 0 1Sr lm x 1 sx 1 st 1 sm 1 sr LxLtLmLr * * * * ] sL # Sin [ Sx [ Sn ln 2 * 1+ Sm lx lm ^ Lm lFx / _1 Ln ^ * ] St [ Lr d 1 + Sr lt x d Sn + Ln 0 !=m ] Sm lx 1Sr lm x 1 sx 1 st 1 sm 1 sr LxLtLmLr * * * * ] sS # Cos [ Sx [ Sn ln 2 * Sm lx lm ^ Lm lFx / _1 Ln ^ * ] St [ Lr d 1 + Sr lt x d Sn + Ln 0 !=m ] Sm 1 1Sr lm x 1 sx 1 st 1 sm 1 sr LxLtLmLr * * * * ] sC # Arctan [ Sx [ Sn ln 2 * 1+ Sm lx lm ^ Lm / _1 Ln ^ * ] St [ Lr d 1 + Sr lt x d Sn + Ln 0 !=m ] Sm lx 1Sr lm x 1 sx 1 st 1 sm 1 sr LxLtLmLr * * * * ] sA # Here are three different routines to calculate pi I saw somewhere and # converted into dc. # pi (Bailey-Borwein-Plouffe) [ [ Sn 4 ln 8 * 1 + / 2 ln 8 * 4 + / - 1 ln 8 * 5 + / - 1 ln 8 * 6 + / - 1 16 / Ln ^ * ] St [ Lr d 1 + Sr lt x d Sn + Ln 0 !=m ] Sm 0 0Sr lm x 1 sx 1 st 1 sm 1 sr LxLtLmLr * * * * ] Sp # pi (Chudnovsky) [ [ Sn _1 ln ^ 6 ln * lFx ln lFx 3 ^ 3 ln * lFx * / * 13591409 ln 545140134 * + 640320 3 ^ d Ln ^ r v * / * ] St [ Lr d 1 + Sr lt x d Sn + Ln 0 !=m ] Sm 0 0Sr lm x 12 * 1 r / 1 sx 1 st 1 sm 1 sr LxLtLmLr * * * * ] Sp # pi (Ramanujan) [ [ Sn ln 4 * lFx ln lFx 4 ^ / 1103 26390 ln * + 396 ln 4 * ^ / * ] St [ Lr d 1 + Sr lt x d Sn + Ln 0 !=m ] Sm 0 0Sr lm x 8v 9801 / * 1 r / 1 sx 1 st 1 sm 1 sr LxLtLmLr * * * * ] Sp #Power [ r lLx * lEx ] sP