home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / unix / unixlib_1 / !UnixLib37_src_sys_s__math < prev    next >
Encoding:
Text File  |  1996-11-09  |  3.0 KB  |  213 lines

  1. ;----------------------------------------------------------------------------
  2. ;
  3. ; $Source: /unixb/home/unixlib/source/unixlib37/src/sys/s/RCS/_math,v $
  4. ; $Date: 1996/11/06 22:01:42 $
  5. ; $Revision: 1.3 $
  6. ; $State: Rel $
  7. ; $Author: unixlib $
  8. ;
  9. ; $Log: _math,v $
  10. ; Revision 1.3  1996/11/06 22:01:42  unixlib
  11. ; Yet more changes by NB, PB and SC.
  12. ;
  13. ; Revision 1.2  1996/10/30 21:59:00  unixlib
  14. ; Massive changes made by Nick Burret and Peter Burwood.
  15. ;
  16. ; Revision 1.1  1996/04/19 21:34:32  simon
  17. ; Initial revision
  18. ;
  19. ;----------------------------------------------------------------------------
  20.  
  21.     GET    Unix37:unixlib.s.asm_dec
  22.  
  23.     AREA    |C$$code|,CODE,READONLY
  24.  
  25.     EXPORT    acos
  26. acos
  27.     STMFD    sp!,{a1,a2}
  28.     LDFD    f0,[sp],#8
  29.     ACSD    f0,f0
  30.     MOVS    pc,lr
  31.  
  32.     EXPORT    asin
  33. asin
  34.     STMFD    sp!,{a1,a2}
  35.     LDFD    f0,[sp],#8
  36.     ASND    f0,f0
  37.     MOVS    pc,lr
  38.  
  39.     EXPORT    atan
  40. atan
  41.     STMFD    sp!,{a1,a2}
  42.     LDFD    f0,[sp],#8
  43.     ATND    f0,f0
  44.     MOVS    pc,lr
  45.  
  46.     EXPORT    atan2
  47. atan2
  48. ; Improved version by Alun Jones
  49. ; takes the quadrant into account as it should.
  50.     STMFD    sp!,{a1,a2,a3,a4}
  51.     LDFD    f1,[sp],#8
  52.     LDFD    f2,[sp],#8
  53.     DVFD    f0,f1,f2
  54.     ABSD    f0,f0
  55.     ATND    f0,f0
  56.     CMFE    f2,#0
  57.     LDFLTD    f2,PI
  58.     SUFLTD    f0,f2,f0
  59.     CMFE    f1,#0
  60.     MOVGES    pc,lr
  61.     MNFD    f0,f0
  62.     MOVS    pc,lr
  63.  
  64. PI    DCFD    3.141592653589793238
  65.  
  66.     EXPORT    cos
  67. cos
  68.     STMFD    sp!,{a1,a2}
  69.     LDFD    f0,[sp],#8
  70.     COSD    f0,f0
  71.     MOVS    pc,lr
  72.  
  73.     EXPORT    sin
  74. sin
  75.     STMFD    sp!,{a1,a2}
  76.     LDFD    f0,[sp],#8
  77.     SIND    f0,f0
  78.     MOVS    pc,lr
  79.  
  80.     EXPORT    tan
  81. tan
  82.     STMFD    sp!,{a1,a2}
  83.     LDFD    f0,[sp],#8
  84.     TAND    f0,f0
  85.     MOVS    pc,lr
  86.  
  87.     EXPORT    exp
  88. exp
  89.     STMFD    sp!,{a1,a2}
  90.     LDFD    f0,[sp],#8
  91.     EXPD    f0,f0
  92.     MOVS    pc,lr
  93.  
  94.     EXPORT    log
  95. log
  96.     STMFD    sp!,{a1,a2}
  97.     LDFD    f0,[sp],#8
  98.     LGND    f0,f0
  99.     MOVS    pc,lr
  100.  
  101.     EXPORT    log10
  102. log10
  103.     STMFD    sp!,{a1,a2}
  104.     LDFD    f0,[sp],#8
  105.     LOGD    f0,f0
  106.     MOVS    pc,lr
  107.  
  108.     EXPORT    modf
  109. modf
  110.     STMFD    sp!,{a1,a2}
  111.     LDFD    f0,[sp],#8
  112.     RNDD    f1,f0
  113.     STFD    f1,[a3,#0]
  114.     SUFD    f0,f0,f1
  115.     MOVS    pc,lr
  116.  
  117.     EXPORT    pow
  118. pow
  119.     STMFD    sp!,{a1,a2,a3,a4}
  120.     LDFD    f0,[sp],#8
  121.     LDFD    f1,[sp],#8
  122.     POWD    f0,f0,f1
  123.     MOVS    pc,lr
  124.  
  125.     EXPORT    sqrt
  126. sqrt
  127.     STMFD    sp!,{a1,a2}
  128.     LDFD    f0,[sp],#8
  129.     SQTD    f0,f0
  130.     MOVS    pc,lr
  131.  
  132.     EXPORT    ceil
  133. ceil
  134.     STMFD    sp!,{a1,a2}
  135.     LDFD    f0,[sp],#8
  136.     FIXD    a1,f0
  137.     FLTD    f1,a1
  138.     CMFE    f1,f0
  139.     ADDLT    a1,a1,#1
  140.     FLTD    f0,a1
  141.     MOVS    pc,lr
  142.  
  143.     EXPORT    fabs
  144. fabs
  145.     STMFD    sp!,{a1,a2}
  146.     LDFD    f0,[sp],#8
  147.     ABSD    f0,f0
  148.     MOVS    pc,lr
  149.  
  150.     EXPORT    floor
  151. floor
  152.     STMFD    sp!,{a1,a2}
  153.     LDFD    f0,[sp],#8
  154.     FIXD    a1,f0
  155.     FLTD    f1,a1
  156.     CMFE    f1,f0
  157.     SUBGT    a1,a1,#1
  158.     FLTD    f0,a1
  159.     MOVS    pc,lr
  160.  
  161.     EXPORT    ldexp
  162. ldexp
  163.     ; return x*pow(2, y)
  164.     STMFD    sp!, {a1, a2, a3, a4}
  165.     LDFD    f0, [sp], #8
  166.     LDFD    f1, [sp], #8
  167.     MVFD    f2, #2
  168.     POWD    f3, f2, f1
  169.     MUFD    f0, f0, f3
  170.     MOVS    pc, lr
  171.  
  172.     EXPORT    cosh
  173. cosh
  174.     ; return (exp(x) + exp(-x)) / 2
  175.     STMFD    sp!, {a1, a2}
  176.     LDFD    f0, [sp], #8
  177.     MNFD    f1, f0
  178.     EXPD    f0, f0
  179.     EXPD    f1, f1
  180.     ADFD    f0, f0, f1
  181.     MVFD    f1, #2
  182.     DVFD    f0, f0, f1
  183.     MOVS     pc, lr
  184.  
  185.     EXPORT    sinh
  186. sinh
  187.     ; return (exp(x) - exp(-x)) / 2
  188.     STMFD    sp!, {a1, a2}
  189.     LDFD    f0, [sp], #8
  190.     MNFD    f1, f0
  191.     EXPD    f0, f0
  192.     EXPD    f1, f1
  193.     SUFD    f0, f0, f1
  194.     MVFD    f1, #2
  195.     DVFD    f0, f0, f1
  196.     MOVS     pc, lr
  197.  
  198.     EXPORT    tanh
  199. tanh
  200.     ; return (exp(x) - exp(-x)) / (exp(x) + exp(-x))
  201.     STMFD    sp!, {a1, a2}
  202.     LDFD    f0, [sp], #8
  203.     MNFD    f1, f0
  204.     EXPD    f0, f0
  205.     EXPD    f1, f1
  206.  
  207.     SUFD    f2, f0, f1
  208.     ADFD    f3, f0, f1
  209.     DVFD    f0, f2, f3
  210.     MOVS     pc, lr
  211.  
  212.     END
  213.