home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 10 / 10.iso / l / l391 / 2.ddi / MATH.BI$ / MATH.bin
Encoding:
Text File  |  1992-08-19  |  3.0 KB  |  59 lines

  1. ' Include file for the Matrix Math ToolKit routines 
  2. ' (80x87 or Emulator math).
  3. '
  4. ' This file should be included in any application
  5. ' using the Matrix Math routines.
  6. '
  7. ' Copyright (C) 1982-1992 Microsoft Corporation
  8. '
  9. DECLARE FUNCTION MatAddC% (Alpha() AS CURRENCY, Beta() AS CURRENCY)
  10. DECLARE FUNCTION MatAddD% (Alpha() AS DOUBLE, Beta() AS DOUBLE)
  11. DECLARE FUNCTION MatAddI% (Alpha() AS INTEGER, Beta() AS INTEGER)
  12. DECLARE FUNCTION MatAddL% (Alpha() AS LONG, Beta() AS LONG)
  13. DECLARE FUNCTION MatAddS% (Alpha() AS SINGLE, Beta() AS SINGLE)
  14. DECLARE FUNCTION MatDetC% (A() AS CURRENCY, det@)
  15. DECLARE FUNCTION MatDetD% (A() AS DOUBLE, det#)
  16. DECLARE FUNCTION MatDetI% (A() AS INTEGER, det%)
  17. DECLARE FUNCTION MatDetL% (A() AS LONG, det&)
  18. DECLARE FUNCTION MatDetS% (A() AS SINGLE, det!)
  19. DECLARE FUNCTION MatInvC% (A() AS CURRENCY)
  20. DECLARE FUNCTION MatInvD% (A() AS DOUBLE)
  21. DECLARE FUNCTION MatInvS% (A() AS SINGLE)
  22. DECLARE FUNCTION MatMultC% (Alpha() AS CURRENCY, Beta() AS CURRENCY, Gamma() AS CURRENCY)
  23. DECLARE FUNCTION MatMultD% (Alpha() AS DOUBLE, Beta() AS DOUBLE, Gamma() AS DOUBLE)
  24. DECLARE FUNCTION MatMultI% (Alpha() AS INTEGER, Beta() AS INTEGER, Gamma() AS INTEGER)
  25. DECLARE FUNCTION MatMultL% (Alpha() AS LONG, Beta() AS LONG, Gamma() AS LONG)
  26. DECLARE FUNCTION MatMultS% (Alpha() AS SINGLE, Beta() AS SINGLE, Gamma() AS SINGLE)
  27. DECLARE FUNCTION MatSEqnC% (A() AS CURRENCY, b() AS CURRENCY)
  28. DECLARE FUNCTION MatSEqnD% (A() AS DOUBLE, b() AS DOUBLE)
  29. DECLARE FUNCTION MatSEqnS% (A() AS SINGLE, b() AS SINGLE)
  30. DECLARE FUNCTION MatSubC% (Alpha() AS CURRENCY, Beta() AS CURRENCY)
  31. DECLARE FUNCTION MatSubD% (Alpha() AS DOUBLE, Beta() AS DOUBLE)
  32. DECLARE FUNCTION MatSubI% (Alpha() AS INTEGER, Beta() AS INTEGER)
  33. DECLARE FUNCTION MatSubL% (Alpha() AS LONG, Beta() AS LONG)
  34. DECLARE FUNCTION MatSubS% (Alpha() AS SINGLE, Beta() AS SINGLE)
  35.  
  36. '===================================================================
  37. 'In theory, a matrix can be exactly singular.  Numerically, exact singularity
  38. 'is a rare occurrence because round off error turns exact zeroes into very
  39. 'small numbers. This data corruption makes it necessary to set a criterion to
  40. 'determine how small a number has to be before we flag it as zero and call
  41. 'the matrix singular.
  42. '
  43. 'The following constants set the maximum drop allowed in weighted pivot
  44. 'values without error code -1 (matrix singular) being returned.  To increase
  45. 'the singularity sensitivity of the MatDet, MatInv, and MatSEqn routines;
  46. 'increase the size of seps! for single precision calls or deps# for double
  47. 'precision calls.  Similarly, decreasing the size of the constants will make
  48. 'the routines less sensitive to singularity.
  49. '
  50. 'If the matrix toolbox is in a library (setup builds MATB???.LIB) or quick
  51. 'library (MATBEFR.QLB), these files must be rebuilt using the new constants.
  52. 'To do this, compile MATB.BAS (use /o,/e) and replace MATB???.OBJ in the
  53. 'library with the new .OBJ file.
  54. '===================================================================
  55.  
  56. CONST seps! = .00001
  57. CONST deps# = .00000000001#
  58.  
  59.