Module: Math
Defined Under Namespace
Classes: DomainError
Constant Summary
- E =
- `Math.E` 
- PI =
- `Math.PI` 
Instance Method Summary collapse
- #acos(x) ⇒ Object
- #acosh(x) ⇒ Object
- #asin(x) ⇒ Object
- #asinh(x) ⇒ Object
- #atan(x) ⇒ Object
- #atan2(x, y) ⇒ Object
- #atanh(x) ⇒ Object
- 
  
    
      #cbrt(x)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    TODO: reimplement this when unavailable. 
- #cos(x) ⇒ Object
- #cosh(x) ⇒ Object
- #erf(x) ⇒ Object
- #erfc(x) ⇒ Object
- #exp(x) ⇒ Object
- #frexp(x) ⇒ Object
- #gamma(x) ⇒ Object
- #hypot(x, y) ⇒ Object
- #ldexp(flt, int) ⇒ Object
- #lgamma(x) ⇒ Object
- #log(num, base = E, method = nil) ⇒ Object
- #log10(num) ⇒ Object
- #log2(num) ⇒ Object
- #sin(x) ⇒ Object
- #sinh(x) ⇒ Object
- #sqrt(x) ⇒ Object
- #tan(x) ⇒ Object
- #tanh(x) ⇒ Object
Instance Method Details
#acos(x) ⇒ Object
| 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | # File 'opal/stdlib/math.rb', line 11 def acos(x) %x{ if (!#{Numeric === x}) { #{raise Opal.type_error(x, Float)}; } x = #{x.to_f}; if (x < -1 || x > 1) { #{raise DomainError, :acos}; } return Math.acos(x); } end | 
#acosh(x) ⇒ Object
| 35 36 37 38 39 40 41 42 43 | # File 'opal/stdlib/math.rb', line 35 def acosh(x) %x{ if (!#{Numeric === x}) { #{raise Opal.type_error(x, Float)}; } return Math.acosh(#{x.to_f}); } end | 
#asin(x) ⇒ Object
| 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | # File 'opal/stdlib/math.rb', line 45 def asin(x) %x{ if (!#{Numeric === x}) { #{raise Opal.type_error(x, Float)}; } x = #{x.to_f}; if (x < -1 || x > 1) { #{raise DomainError, :asin}; } return Math.asin(x); } end | 
#asinh(x) ⇒ Object
| 69 70 71 72 73 74 75 76 77 | # File 'opal/stdlib/math.rb', line 69 def asinh(x) %x{ if (!#{Numeric === x}) { #{raise Opal.type_error(x, Float)}; } return Math.asinh(#{x.to_f}); } end | 
#atan(x) ⇒ Object
| 79 80 81 82 83 84 85 86 87 | # File 'opal/stdlib/math.rb', line 79 def atan(x) %x{ if (!#{Numeric === x}) { #{raise Opal.type_error(x, Float)}; } return Math.atan(#{x.to_f}); } end | 
#atan2(x, y) ⇒ Object
| 89 90 91 92 93 94 95 96 97 98 99 100 101 | # File 'opal/stdlib/math.rb', line 89 def atan2(x, y) %x{ if (!#{Numeric === x}) { #{raise Opal.type_error(x, Float)}; } if (!#{Numeric === y}) { #{raise Opal.type_error(y, Float)}; } return Math.atan2(#{x.to_f}, #{y.to_f}); } end | 
#atanh(x) ⇒ Object
| 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 | # File 'opal/stdlib/math.rb', line 111 def atanh(x) %x{ if (!#{Numeric === x}) { #{raise Opal.type_error(x, Float)}; } x = #{x.to_f}; if (x < -1 || x > 1) { #{raise DomainError, :atanh}; } return Math.atanh(x); } end | 
#cbrt(x) ⇒ Object
TODO: reimplement this when unavailable
| 128 129 130 | # File 'opal/stdlib/math.rb', line 128 def cbrt(x) `Math.cbrt(x)` end | 
#cos(x) ⇒ Object
| 132 133 134 135 136 137 138 139 140 | # File 'opal/stdlib/math.rb', line 132 def cos(x) %x{ if (!#{Numeric === x}) { #{raise Opal.type_error(x, Float)}; } return Math.cos(#{x.to_f}); } end | 
#cosh(x) ⇒ Object
| 150 151 152 153 154 155 156 157 158 | # File 'opal/stdlib/math.rb', line 150 def cosh(x) %x{ if (!#{Numeric === x}) { #{raise Opal.type_error(x, Float)}; } return Math.cosh(#{x.to_f}); } end | 
#erf(x) ⇒ Object
| 160 161 162 | # File 'opal/stdlib/math.rb', line 160 def erf(x) raise NotImplementedError end | 
#erfc(x) ⇒ Object
| 164 165 166 | # File 'opal/stdlib/math.rb', line 164 def erfc(x) raise NotImplementedError end | 
#exp(x) ⇒ Object
| 168 169 170 171 172 173 174 175 176 | # File 'opal/stdlib/math.rb', line 168 def exp(x) %x{ if (!#{Numeric === x}) { #{raise Opal.type_error(x, Float)}; } return Math.exp(#{x.to_f}); } end | 
#frexp(x) ⇒ Object
| 178 179 180 | # File 'opal/stdlib/math.rb', line 178 def frexp(x) raise NotImplementedError end | 
#gamma(x) ⇒ Object
| 182 183 184 | # File 'opal/stdlib/math.rb', line 182 def gamma(x) raise NotImplementedError end | 
#hypot(x, y) ⇒ Object
| 194 195 196 197 198 199 200 201 202 203 204 205 206 | # File 'opal/stdlib/math.rb', line 194 def hypot(x, y) %x{ if (!#{Numeric === x}) { #{raise Opal.type_error(x, Float)}; } if (!#{Numeric === y}) { #{raise Opal.type_error(y, Float)}; } return Math.hypot(#{x.to_f}, #{y.to_f}); } end | 
#ldexp(flt, int) ⇒ Object
| 208 209 210 | # File 'opal/stdlib/math.rb', line 208 def ldexp(flt, int) raise NotImplementedError end | 
#lgamma(x) ⇒ Object
| 212 213 214 | # File 'opal/stdlib/math.rb', line 212 def lgamma(x) raise NotImplementedError end | 
#log(num, base = E, method = nil) ⇒ Object
| 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 | # File 'opal/stdlib/math.rb', line 216 def log(num, base = E, method = nil) %x{ if (!#{Numeric === num}) { #{raise Opal.type_error(num, Float)}; } if (!#{Numeric === base}) { #{raise Opal.type_error(base, Float)}; } num = #{num.to_f}; base = #{base.to_f}; if (num < 0) { #{raise DomainError, method || :log}; } num = Math.log(num); if (base != Math.E) { num /= Math.log(base); } return num } end | 
#log10(num) ⇒ Object
| 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 | # File 'opal/stdlib/math.rb', line 244 def log10(num) %x{ if (!#{Numeric === num}) { #{raise Opal.type_error(num, Float)}; } num = #{num.to_f}; if (num < 0) { #{raise DomainError, :log2}; } return Math.log10(num); } end | 
#log2(num) ⇒ Object
| 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 | # File 'opal/stdlib/math.rb', line 266 def log2(num) %x{ if (!#{Numeric === num}) { #{raise Opal.type_error(num, Float)}; } num = #{num.to_f}; if (num < 0) { #{raise DomainError, :log2}; } return Math.log2(num); } end | 
#sin(x) ⇒ Object
| 287 288 289 290 291 292 293 294 295 | # File 'opal/stdlib/math.rb', line 287 def sin(x) %x{ if (!#{Numeric === x}) { #{raise Opal.type_error(x, Float)}; } return Math.sin(#{x.to_f}); } end | 
#sinh(x) ⇒ Object
| 305 306 307 308 309 310 311 312 313 | # File 'opal/stdlib/math.rb', line 305 def sinh(x) %x{ if (!#{Numeric === x}) { #{raise Opal.type_error(x, Float)}; } return Math.sinh(#{x.to_f}); } end | 
#sqrt(x) ⇒ Object
| 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 | # File 'opal/stdlib/math.rb', line 315 def sqrt(x) %x{ if (!#{Numeric === x}) { #{raise Opal.type_error(x, Float)}; } x = #{x.to_f}; if (x < 0) { #{raise DomainError, :log2}; } return Math.sqrt(x); } end |