tntreqs.h
上传用户:kellyonhid
上传日期:2013-10-12
资源大小:932k
文件大小:2k
源码类别:

3D图形编程

开发平台:

Visual C++

  1. // Template Numerical Toolkit (TNT) for Linear Algebra
  2. //
  3. // BETA VERSION INCOMPLETE AND SUBJECT TO CHANGE
  4. // Please see http://math.nist.gov/tnt for updates
  5. //
  6. // R. Pozo
  7. // Mathematical and Computational Sciences Division
  8. // National Institute of Standards and Technology
  9. // The requirements for the TNT bare-bones vector class:
  10. //
  11. //
  12. //   o) must have 0-based [] indexing for const and
  13. //          non-const objects
  14. //   o) must have size() method to denote the number of
  15. //          elements
  16. //   o) must clean up after itself when destructed
  17. //          (i.e. no memory leaks)
  18. //
  19. //   o) must have begin() and end() methods  (The begin()
  20. //          method is necessary, because relying on 
  21. //          &v_[0] may not work on a empty vector (i.e. v_ is NULL.)
  22. //
  23. //   o) must be templated
  24. //   o) must have X::X(const &x) copy constructor (by *value*)
  25. //   o) must have X::X(int N) constructor 
  26. //          (NOTE: this constructor need *NOT* initalize elements)
  27. //
  28. //   o) must have X::X(int N, T scalar) constructor to initalize
  29. //          elements to value of "scalar".
  30. //
  31. //   o) must have X::X(int N, const T* scalars) constructor to copy from
  32. //              any C linear array
  33. //
  34. //   o) must have assignment A=B, by value
  35. //
  36. //  NOTE: this class is *NOT* meant to be derived from,
  37. //  so its methods (particularly indexing) need not be
  38. //  declared virtual.
  39. //
  40. //
  41. //  Some things it *DOES NOT* need to do are
  42. //
  43. //  o) bounds checking
  44. //  o) array referencing (e.g. reference counting)
  45. //  o) support () indexing
  46. //  o) I/O 
  47. //