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

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. // Vector/Matrix/Array Index Module  
  10. #ifndef INDEX_H
  11. #define INDEX_H
  12. #include "subscrpt.h"
  13. class Index1D
  14. {
  15.     Subscript lbound_;
  16.     Subscript ubound_;
  17.     public:
  18.     Subscript lbound() const { return lbound_; }
  19.     Subscript ubound() const { return ubound_; }
  20.     Index1D(const Index1D &D) : lbound_(D.lbound_), ubound_(D.ubound_) {}
  21.     Index1D(Subscript i1, Subscript i2) : lbound_(i1), ubound_(i2) {}
  22.     Index1D & operator=(const Index1D &D)
  23.     {
  24.         lbound_ = D.lbound_;
  25.         ubound_ = D.ubound_;
  26.         return *this;
  27.     }
  28. };
  29. inline Index1D operator+(const Index1D &D, Subscript i)
  30. {
  31.     return Index1D(i+D.lbound(), i+D.ubound());
  32. }
  33. inline Index1D operator+(Subscript i, const Index1D &D)
  34. {
  35.     return Index1D(i+D.lbound(), i+D.ubound());
  36. }
  37. inline Index1D operator-(Index1D &D, Subscript i)
  38. {
  39.     return Index1D(D.lbound()-i, D.ubound()-i);
  40. }
  41. inline Index1D operator-(Subscript i, Index1D &D)
  42. {
  43.     return Index1D(i-D.lbound(), i-D.ubound());
  44. }
  45. #endif