home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / octave-1.1.1p1-bin.lha / include / octave / FEGrid.h < prev    next >
C/C++ Source or Header  |  1996-10-12  |  2KB  |  96 lines

  1. // FEGrid.h                                                -*- C++ -*-
  2. /*
  3.  
  4. Copyright (C) 1992, 1993, 1994, 1995 John W. Eaton
  5.  
  6. This file is part of Octave.
  7.  
  8. Octave is free software; you can redistribute it and/or modify it
  9. under the terms of the GNU General Public License as published by the
  10. Free Software Foundation; either version 2, or (at your option) any
  11. later version.
  12.  
  13. Octave is distributed in the hope that it will be useful, but WITHOUT
  14. ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  15. FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  16. for more details.
  17.  
  18. You should have received a copy of the GNU General Public License
  19. along with Octave; see the file COPYING.  If not, write to the Free
  20. Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  21.  
  22. */
  23.  
  24. #if !defined (octave_FEGrid_h)
  25. #define octave_FEGrid_h 1
  26.  
  27. class ostream;
  28.  
  29. #include "dColVector.h"
  30.  
  31. extern "C++" {
  32.  
  33. #ifndef Vector
  34. #define Vector ColumnVector
  35. #endif
  36.  
  37. class FEGrid
  38. {
  39. public:
  40.  
  41.   FEGrid (void);
  42.   FEGrid (const Vector& elbnds);
  43.   FEGrid (int nel, double width);
  44.   FEGrid (int nel, double left, double right);
  45.  
  46.   int in_bounds (double x) const;
  47.  
  48.   int element (double x) const;
  49.  
  50.   double left (void) const;
  51.   double right (void) const;
  52.  
  53.   Vector element_boundaries (void) const;
  54.  
  55.   friend ostream& operator << (ostream&, const FEGrid&);
  56.  
  57. protected:
  58.  
  59.   Vector elem;
  60.  
  61. private:
  62.  
  63.   void error (const char* msg) const;
  64.   void nel_error (void) const;
  65.  
  66.   void check_grid (void) const;
  67. };
  68.  
  69. inline FEGrid::FEGrid (void) {}
  70.  
  71. inline FEGrid::FEGrid (const Vector& elbnds)
  72.   { elem = elbnds; check_grid (); }
  73.  
  74. inline int FEGrid::in_bounds (double x) const
  75.   { return (x >= left () && x <= right ()); }
  76.  
  77. inline double FEGrid::left (void) const
  78.   { return elem.elem (0); }
  79.  
  80. inline double FEGrid::right (void) const
  81.   { return elem.elem (elem.capacity () - 1); }
  82.  
  83. inline Vector FEGrid::element_boundaries (void) const
  84.   { return elem; }
  85.  
  86. } // extern "C++"
  87.  
  88. #endif
  89.  
  90. /*
  91. ;;; Local Variables: ***
  92. ;;; mode: C++ ***
  93. ;;; page-delimiter: "^/\\*" ***
  94. ;;; End: ***
  95. */
  96.