Advertisement
Guest User

bigatom-test.ex

a guest
Dec 20th, 2014
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.45 KB | None | 0 0
  1.  
  2. include bigatom.e as B
  3.  
  4.  
  5. sequence sc = scale()
  6. printf(1, "\ndefault scale: %d,%d\n\n", sc)
  7.  
  8.  
  9. sc = scale(9,0)
  10. -- sc = scale(9,1)
  11. printf(1, "\nscale prev: %d,%d ", sc)
  12. printf(1, "curr: %d,%d\n\n", scale())
  13.  
  14. sequence fmt = "%24.7cB <==\n" -- sin zdecs (0.0000000) si no es cero
  15. sequence fmt2 = "%24.07cB <== " -- con zdecs (+/-0.0000000)
  16. sequence fmt3 = "%B\n" -- con todos los dígitos
  17.  
  18. for i = -12 to 12 do
  19. sequence x, y, s1, s2, z
  20. for j = -12 to 12 do
  21. x = ba_new(i)
  22. y = ba_new(j)
  23. s1 = ba_sprintf("%3B", x)
  24. s2 = ba_sprintf("%3B", y)
  25.  
  26. puts(1,s1 & " + " & s2 & " = ")
  27. z = ba_add(x,y)
  28. ba_printf(1, fmt, z)
  29.  
  30. puts(1,s1 & " - " & s2 & " = ")
  31. z = ba_sub(x,y)
  32. ba_printf(1, fmt, z)
  33.  
  34. puts(1,s1 & " * " & s2 & " = ")
  35. z = ba_multiply(x,y)
  36. ba_printf(1, fmt, z)
  37.  
  38. puts(1,s1 & " / " & s2 & " = ")
  39. z = ba_divide(x,y)
  40. ba_printf(1, fmt, z)
  41.  
  42. puts(1,s1 & " \\ " & s2 & " = ")
  43. z = ba_idivide(x,y)
  44. ba_printf(1, fmt, z)
  45.  
  46. puts(1,s1 & " % " & s2 & " = ")
  47. z = ba_remainder(x,y)
  48. ba_printf(1, fmt, z)
  49.  
  50. puts(1,s1 & " ^ " & s2 & " = ")
  51. z = ba_power(x,j)
  52. if j < 0 then
  53. puts(1, ba_sprintf(fmt2, z) & ba_sprintf(fmt3, z))
  54. else
  55. ba_printf(1, fmt, z)
  56. end if
  57.  
  58. end for
  59. end for
  60.  
  61.  
  62. sc = scale(12, 1)
  63. printf(1, "\n\nscale prev: %d,%d ", sc)
  64. sc = scale()
  65. printf(1, "curr: %d,%d\n\n", sc)
  66.  
  67. sequence n, n1, n2
  68. object x
  69.  
  70. n1 = ba_new("3529455304563036269379362804377.8333")
  71. n2 = ba_new("2.53")
  72. puts(1, "\nn1 = " & ba_sprint(n1) & 10)
  73. puts(1, "n2 = " & ba_sprint(n2) & 10)
  74.  
  75. puts(1, "ba_multiply(n1, n2) = " & ba_sprint(ba_multiply(n1, n2)) & 10)
  76. puts(1,"ba_multiply(n2, n1) = " & ba_sprint(ba_multiply(n2, n1)) & 10)
  77.  
  78.  
  79. fmt = sprintf("= %%.%df", sc[1])
  80. puts(1, "\nprintf(1,\""&fmt&"\\n\",1e52/12) " & sprintf(fmt, 1e52/12) & 10)
  81. n2 = ba_divide(ba_new("1e52"), ba_new(12))
  82. puts(1, "ba_divide(\"1e52\", 12) = " & ba_sprint(n2) & 10)
  83. n2 = ba_divide(1e52, 12)
  84. puts(1, "ba_divide(1e52, 12) = " & ba_sprint(n2) & 10 & 10)
  85.  
  86.  
  87. sc = scale(40)
  88. printf(1, "\nscale prev: %d,%d ", sc)
  89. sc = scale()
  90. printf(1, "curr: %d,%d\n\n", sc)
  91.  
  92. integer count = 500
  93. sequence pwr, ans
  94. sequence BIG = ba_new(2)
  95. pwr = ba_power(BIG, count)
  96. ans = ba_sprint(pwr)
  97. printf(1, "%s^%d = %s\n\n", {ba_sprint(BIG), count, ans})
  98. count = 829
  99. BIG = ba_new(3)
  100. pwr = ba_power(BIG, count)
  101. ans = ba_sprint(pwr)
  102. printf(1, "%s^%d = %s\n", {ba_sprint(BIG), count, ans})
  103.  
  104. puts(1, 10)
  105. n = ba_exp(1)
  106. puts(1, "ba_exp(1) = " & ba_sprint(n) & 10)
  107. n = ba_exp("1")
  108. puts(1, "ba_exp(\"1\") = " & ba_sprint(n) & 10)
  109.  
  110. x = ba_log(n)
  111. puts(1, "ba_log(" & ba_sprint(n) & ") = " & ba_sprint(x) & 10)
  112. puts(1, "eu:log(" & ba_sprint(n) & ") = " & sprintf("%.40f", eu:log(exp(1))) & 10)
  113.  
  114. x = eu:log(3)
  115. puts(1, "\neu:log(3) = " & sprintf("%.40f\n", x))
  116. x = log(3)
  117. puts(1, " log(3) = " & sprintf("%.40f\n", x))
  118.  
  119. n = ba_log(3)
  120. puts(1, "ba_log(3) = " & ba_sprint(n) & 10)
  121. n = ba_log("3")
  122. puts(1, "ba_log(\"3\") = " & ba_sprint(n) & 10)
  123.  
  124.  
  125.  
  126. sc = scale(40)
  127. printf(1, "\nscale prev: %d,%d ", sc)
  128. sc = scale()
  129. printf(1, "curr: %d,%d\n\n", sc)
  130.  
  131. --n1 = ba_new("1.23456789123456789123456789123456789E-345")
  132. n1 = ba_new("3.456789123457891234567891234567891234567895e-879")
  133. n2 = ba_new("1.23456789123456789123456789123456789E+2345")
  134.  
  135. puts(1, "\nn1 = " & ba_sprint(n1) & 10)
  136. puts(1, "\nn2 = " & ba_sprint(n2) & 10)
  137.  
  138. n = ba_add(n1, n2)
  139. puts(1, "\nn1 + n2 = " & ba_sprint(n) & 10)
  140.  
  141. n = ba_sub(n1, n2)
  142. puts(1, "\nn1 - n2 = " & ba_sprint(n) & 10)
  143.  
  144. n = ba_multiply(n1, n2)
  145. puts(1, "\nn1 * n2 = " & ba_sprint(n) & 10)
  146. puts(1, 10 & 10)
  147.  
  148.  
  149. printf(1, "\nscale: %d,%d\n", scale())
  150.  
  151. n = ba_divide(n1, n2)
  152. puts(1, "\nn1 / n2 = " & ba_sprint(n) & 10)
  153. puts(1, 10 & 10)
  154.  
  155. n = ba_divide(n2, n1) -- más de 3000 dígitos
  156. puts(1, "\nn2 / n1 = " & ba_sprint(n) & 10)
  157.  
  158. sc = scale(,0)
  159. printf(1, "\nscale prev: %d,%d ", sc)
  160. sc = scale()
  161. printf(1, "curr: %d,%d\n\n", sc)
  162.  
  163. n = ba_divide(n1, n2)
  164. puts(1, "\nn1 / n2 = " & ba_sprint(n) & 10)
  165. puts(1, 10 & 10)
  166.  
  167. n = ba_divide(n2, n1) -- más de 3000 dígitos
  168. puts(1, "\nn2 / n1 = " & ba_sprint(n) & 10)
  169.  
  170. puts(1, 10 & 10)
  171.  
  172.  
  173.  
  174. n1 = ba_new("25")
  175. n2 = ba_new(-13)
  176.  
  177. n = ba_exp(n1)
  178. puts(1, "\n" & "ba_exp(" & ba_sprint(n1) & ") = " & ba_sprint(n) & 10)
  179.  
  180. n = ba_exp(n2)
  181. puts(1, "\n" & "ba_exp(" & ba_sprint(n2) & ") = " & ba_sprint(n) & 10)
  182.  
  183. n = ba_log(n1)
  184. puts(1, "\n" & "ba_log(" & ba_sprint(n1) & ") = " & ba_sprint(n) & 10)
  185.  
  186. n = ba_log(n2)
  187. puts(1, "\n" & "ba_log(" & ba_sprint(n2) & ") = " & ba_sprint(n) & 10)
  188.  
  189.  
  190. sequence tmp
  191. n = ba_new(eu:sqrt(2))
  192. puts(1, "\neu:sqrt(2) = " & ba_sprint(n) & 10) -- ? n
  193. tmp = ba_power(n, n2)
  194. puts(1, ba_sprint(n) & "^" & ba_sprint(n2) & " = " & ba_sprint(tmp) & 10)
  195.  
  196. n = ba_new(sqrt(2))
  197. puts(1, "\nsqrt(2) = " & ba_sprint(n) & 10) -- ? n
  198. tmp = ba_power(n, n2)
  199. puts(1, ba_sprint(n) & "^" & ba_sprint(n2) & " = " & ba_sprint(tmp) & 10)
  200.  
  201. n = ba_sqrt(2)
  202. puts(1, "\nba_sqrt(2) = " & ba_sprint(n) & 10) -- ? n
  203. tmp = ba_power(n, n2)
  204. puts(1, ba_sprint(n) & "^" & ba_sprint(n2) & " = " & ba_sprint(tmp) & 10)
  205.  
  206. n = ba_root(2, 2)
  207. puts(1, "\n" & "ba_root(2, 2) = " & ba_sprint(n) & 10)
  208. tmp = ba_power(n, n2)
  209. puts(1, ba_sprint(n) & "^" & ba_sprint(n2) & " = " & ba_sprint(tmp) & 10)
  210. tmp = ba_power(n, 2)
  211. puts(1, "\n" & ba_sprint(n) & "^" & ba_sprint(ba_new(2)) & " = " & ba_sprint(tmp) & 10)
  212.  
  213.  
  214. n = ba_root(n1, n2)
  215. puts(1, "\nba_root(" & ba_sprint(n1) & ", " & ba_sprint(n2) & ") = " & ba_sprint(n) & 10)
  216. tmp = ba_power(n, n2)
  217. puts(1, ba_sprint(n) & "^" & ba_sprint(n2) & " = " & ba_sprint(tmp) & 10 & 10)
  218.  
  219.  
  220. fmt = sprintf("= %%.%df\n", sc[1])
  221. printf(1,"eu:log(1.41) " & fmt , eu:log(1.41))
  222. printf(1," log(1.41) " & fmt, log(1.41))
  223. ba_printf(1,"ba_log(1.41) = %B\n", ba_log(ba_new(1.41)))
  224. ba_printf(1,"ba_log(\"1.41\") = %B\n", ba_log("1.41"))
  225.  
  226.  
  227. sc = scale(50)
  228. printf(1, "\nscale prev: %d,%d ", sc)
  229. sc = scale()
  230. printf(1, "curr: %d,%d\n\n", sc)
  231.  
  232. ba_printf(1,"ba_logb(1.573e-3, 10)) = %B\n", ba_logb(1.573e-3, ba_new(10)))
  233. ba_printf(1,"ba_logb(\"1.573e-3\", \"10\") = %B\n", ba_logb("1.573e-3", "10"))
  234.  
  235. puts(1, 10)
  236.  
  237. fmt = sprintf("= %%.%df\n", sc[1])
  238. printf(1,"eu:log(99.99999) " & fmt, eu:log(99.99999))
  239. printf(1," log(99.99999) " & fmt, log(99.99999))
  240. ba_printf(1,"ba_log(99.99999) = %B\n", ba_log(99.99999))
  241. ba_printf(1,"ba_log(\"99.99999\") = %B\n", ba_log("99.99999"))
  242.  
  243.  
  244. ? ba_new("-__ e231.23e45 e-12e++..--Eholae")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement