Variouscacti

Inverse Sine Function Hypixel Housing

Apr 19th, 2023 (edited)
446
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.37 KB | Gaming | 0 0
  1. //by Variouscacti
  2.  
  3. //How To Use:
  4. //Name function "arcsin" for compatibility with my other functions
  5. //Input a value to the stat "arcsinInput" 1000000 times the intended input, where -1000000 <= input <= 1000000
  6. //Output will be in the stat "arcsinOutput", where -90 <= output <= 90 (Calculation is in degrees)
  7. //Requires function "sqrt": https://pastebin.com/ufZHxJFT
  8.  
  9. //Desmos graph: https://www.desmos.com/calculator/hhceazy9ba
  10. //Source for estimation: https://wrfranklin.org/Research/Short_Notes/arcsin/fastsqrt.html (Modified version of [2,4] quotient used)
  11.  
  12. //Enjoy!
  13.  
  14. //check input
  15. if or (stat arcsinInput < -1000000, stat arcsinInput > 1000000) {
  16. chat "Error! Invalid arcsin input!"
  17. exit
  18. }
  19.  
  20. //setup
  21. if (stat arcsinInput < 0, stat arcsinInput >= -1000000) {
  22. stat arcsinInput *= -1
  23. stat arcsinNegative = 1
  24. stat arcsinOutput = %stat.player/arcsinInput%
  25. stat arcsinDen = %stat.player/arcsinInput%
  26. } else {
  27. stat arcsinOutput = %stat.player/arcsinInput%
  28. stat arcsinDen = %stat.player/arcsinInput%
  29. }
  30.  
  31. //numerator
  32. if () {
  33. stat arcsinOutput *= -21440080220
  34. stat arcsinOutput /= 1000000
  35. stat arcsinOutput += 11030071310
  36. stat arcsinOutput *= %stat.player/arcsinInput%
  37. stat arcsinOutput += 15070951110000000
  38. }
  39.  
  40. //denominator
  41. if () {
  42. stat arcsinDen *= -1535779990
  43. stat arcsinDen /= 1000000
  44. stat arcsinDen += 02836182315
  45. stat arcsinDen *= %stat.player/arcsinInput%
  46. stat arcsinDen /= 1000000
  47. }
  48. if () {
  49. stat arcsinDen += -9315200116
  50. stat arcsinDen *= %stat.player/arcsinInput%
  51. stat arcsinDen /= 1000000
  52. stat arcsinDen += -4089766186
  53. stat arcsinDen *= %stat.player/arcsinInput%
  54. }
  55. if () {
  56. stat arcsinDen += 15071716000000000
  57. stat arcsinDen /= 1000
  58.  
  59. //get sqrt
  60. stat arcsinInput *= %stat.player/arcsinInput%
  61. stat sqrtInput = 1000000000000
  62. stat sqrtInput -= %stat.player/arcsinInput%
  63. function sqrt false
  64. }
  65.  
  66. //final calculations
  67. if (stat arcsinNegative = 1) {
  68. stat arcsinOutput /= %stat.player/arcsinDen%
  69. stat arcsinOutput *= 1000
  70. stat arcsinOutput -= %stat.player/sqrtOutput%
  71. stat arcsinOutput += 10000
  72. stat arcsinOutput *= -57295780
  73. } else {
  74. stat arcsinOutput /= %stat.player/arcsinDen%
  75. stat arcsinOutput *= 1000
  76. stat arcsinOutput += 10000
  77. stat arcsinOutput -= %stat.player/sqrtOutput%
  78. stat arcsinOutput *= 57295780
  79. }
  80. if () {
  81. stat arcsinOutput /= 1000000000000
  82.  
  83. //cleanup
  84. stat arcsinInput = 0
  85. stat arcsinDen = 0
  86. stat sqrtOutput = 0
  87. stat arcsinNegative = 0
  88. }
Advertisement
Add Comment
Please, Sign In to add comment