home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 9 / 09.iso / l / l196 / 3.ddi / MATB.BI$ / MATB.bin
Encoding:
Text File  |  1990-06-24  |  3.1 KB  |  55 lines

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