mp.h
资源名称:c.rar [点击查看]
上传用户:shmaik
上传日期:2014-06-01
资源大小:45093k
文件大小:2k
源码类别:

VC书籍

开发平台:

C/C++

  1. /* $Id: H:/drh/idioms/book/RCS/mp.doc,v 1.11 1996/06/26 23:02:01 drh Exp $ */
  2. #ifndef MP_INCLUDED
  3. #define MP_INCLUDED
  4. #include <stdarg.h>
  5. #include <stddef.h>
  6. #include "except.h"
  7. #define T MP_T
  8. typedef unsigned char *T;
  9. extern const Except_T MP_Overflow;
  10. extern const Except_T MP_Dividebyzero;
  11. extern int MP_set(int n);
  12. extern T MP_new(unsigned long u);
  13. extern T MP_fromint (T z, long v);
  14. extern T MP_fromintu(T z, unsigned long u);
  15. extern unsigned long MP_tointu(T x);
  16. extern          long MP_toint (T x);
  17. extern T MP_cvt (int m, T z, T x);
  18. extern T MP_cvtu(int m, T z, T x);
  19. extern T MP_add (T z, T x, T y);
  20. extern T MP_sub (T z, T x, T y);
  21. extern T MP_mul (T z, T x, T y);
  22. extern T MP_div (T z, T x, T y);
  23. extern T MP_mod (T z, T x, T y);
  24. extern T MP_neg (T z, T x);
  25. extern T MP_addu(T z, T x, T y);
  26. extern T MP_subu(T z, T x, T y);
  27. extern T MP_mulu(T z, T x, T y);
  28. extern T MP_divu(T z, T x, T y);
  29. extern T MP_modu(T z, T x, T y);
  30. extern T MP_mul2u(T z, T x, T y);
  31. extern T MP_mul2 (T z, T x, T y);
  32. extern T MP_addi (T z, T x, long y);
  33. extern T MP_subi (T z, T x, long y);
  34. extern T MP_muli (T z, T x, long y);
  35. extern T MP_divi (T z, T x, long y);
  36. extern T MP_addui(T z, T x, unsigned long y);
  37. extern T MP_subui(T z, T x, unsigned long y);
  38. extern T MP_mului(T z, T x, unsigned long y);
  39. extern T MP_divui(T z, T x, unsigned long y);
  40. extern          long MP_modi (T x,          long y);
  41. extern unsigned long MP_modui(T x, unsigned long y);
  42. extern int MP_cmp  (T x, T y);
  43. extern int MP_cmpi (T x, long y);
  44. extern int MP_cmpu (T x, T y);
  45. extern int MP_cmpui(T x, unsigned long y);
  46. extern T MP_and (T z, T x, T y);
  47. extern T MP_or  (T z, T x, T y);
  48. extern T MP_xor (T z, T x, T y);
  49. extern T MP_not (T z, T x);
  50. extern T MP_andi(T z, T x, unsigned long y);
  51. extern T MP_ori (T z, T x, unsigned long y);
  52. extern T MP_xori(T z, T x, unsigned long y);
  53. extern T MP_lshift(T z, T x, int s);
  54. extern T MP_rshift(T z, T x, int s);
  55. extern T MP_ashift(T z, T x, int s);
  56. extern T     MP_fromstr(T z, const char *str,
  57. int base, char **end);
  58. extern char *MP_tostr  (char *str, int size,
  59. int base, T x);
  60. extern void  MP_fmt    (int code, va_list *app,
  61. int put(int c, void *cl), void *cl,
  62. unsigned char flags[], int width, int precision);
  63. extern void  MP_fmtu   (int code, va_list *app,
  64. int put(int c, void *cl), void *cl,
  65. unsigned char flags[], int width, int precision);
  66. #undef T
  67. #endif