atm-irbis

Extended Mathematic Library for ObjectIcon

Jul 26th, 2013
565
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package ext.Math
  2. import
  3.    util(Math),
  4.    ipl.factors(factorial)
  5.  
  6. class ExtMath()
  7. public static const
  8.    syms,
  9.    eiler
  10.  
  11.    private static init()
  12.    syms := &digits++&ucase
  13.    eiler := 0.5772156649015328606065120
  14.    end
  15.  
  16.    public static to_sys(x,n)
  17.       local r,s,i,t,res
  18.       s := list()
  19.       t := list()
  20.       while x >= 1 do {
  21.          r := x%n
  22.          put(s,r)
  23.          x := integer(x/n)
  24.       }
  25.       every i := *s to 1 by -1 do {
  26.          put(t,syms[s[i]+1])
  27.       }
  28.       res:=""
  29.       every i := 1 to *t do {
  30.          res ||:= t[i]
  31.       }
  32.       return res
  33.       end
  34.  
  35.    public static from_sys(x,n)
  36.       local r,t,i
  37.       r := 0
  38.       x := reverse(x)
  39.       every i := 1 to *x do {
  40.      if x[i] == !syms then t := find(x[i],syms)-1
  41.          r +:= t*(n^(i-1))     
  42.       }
  43.       return r
  44.    end
  45.  
  46.    public static to_sys2(x,n1,n2)
  47.    local tmp
  48.    tmp := from_sys(x,n1)
  49.    return to_sys(tmp,n2)
  50.    end
  51.  
  52.    public static root(x,y)
  53.    return x^(1.0/y)
  54.    end
  55.  
  56.    public static discriminant(a,b,c)
  57.    return (b^2) - 4 * a * c
  58.    end
  59.  
  60.    public static sgn(x)
  61.    if x < 0 then return -1 else {
  62.      if x = 0 then return 0 else return 1
  63.    }
  64.    end
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×