Mercurial > octave-nkf
comparison liboctave/FEGrid.cc @ 5275:23b37da9fd5b
[project @ 2005-04-08 16:07:35 by jwe]
author | jwe |
---|---|
date | Fri, 08 Apr 2005 16:07:37 +0000 |
parents | e35b034d3523 |
children | 4c8a2e4e0717 |
comparison
equal
deleted
inserted
replaced
5274:eae7b40388e9 | 5275:23b37da9fd5b |
---|---|
43 error ("number of elements less than 1"); | 43 error ("number of elements less than 1"); |
44 } | 44 } |
45 | 45 |
46 // Constructors | 46 // Constructors |
47 | 47 |
48 FEGrid::FEGrid (int nel, double width) | 48 FEGrid::FEGrid (octave_idx_type nel, double width) |
49 { | 49 { |
50 if (nel < 1) | 50 if (nel < 1) |
51 { | 51 { |
52 nel_error (); | 52 nel_error (); |
53 return; | 53 return; |
54 } | 54 } |
55 | 55 |
56 elem.resize (nel+1); | 56 elem.resize (nel+1); |
57 | 57 |
58 for (int i = 0; i <= nel; i++) | 58 for (octave_idx_type i = 0; i <= nel; i++) |
59 elem.elem (i) = i * width; | 59 elem.elem (i) = i * width; |
60 } | 60 } |
61 | 61 |
62 FEGrid::FEGrid (int nel, double l, double r) | 62 FEGrid::FEGrid (octave_idx_type nel, double l, double r) |
63 { | 63 { |
64 if (nel < 1) | 64 if (nel < 1) |
65 { | 65 { |
66 nel_error (); | 66 nel_error (); |
67 return; | 67 return; |
69 | 69 |
70 elem.resize (nel+1); | 70 elem.resize (nel+1); |
71 | 71 |
72 double width = (r - l) / nel; | 72 double width = (r - l) / nel; |
73 | 73 |
74 for (int i = 0; i <= nel; i++) | 74 for (octave_idx_type i = 0; i <= nel; i++) |
75 elem.elem (i) = i * width + l; | 75 elem.elem (i) = i * width + l; |
76 | 76 |
77 check_grid (); | 77 check_grid (); |
78 } | 78 } |
79 | 79 |
80 int | 80 octave_idx_type |
81 FEGrid::element (double x) const | 81 FEGrid::element (double x) const |
82 { | 82 { |
83 if (! in_bounds (x)) | 83 if (! in_bounds (x)) |
84 { | 84 { |
85 error ("value not within grid boundaries"); | 85 error ("value not within grid boundaries"); |
86 return -1; | 86 return -1; |
87 } | 87 } |
88 | 88 |
89 int nel = elem.capacity () - 1; | 89 octave_idx_type nel = elem.capacity () - 1; |
90 for (int i = 1; i <= nel; i++) | 90 for (octave_idx_type i = 1; i <= nel; i++) |
91 { | 91 { |
92 if (x >= elem.elem (i-1) && x <= elem.elem (i)) | 92 if (x >= elem.elem (i-1) && x <= elem.elem (i)) |
93 return i; | 93 return i; |
94 } | 94 } |
95 return -1; | 95 return -1; |
97 } | 97 } |
98 | 98 |
99 void | 99 void |
100 FEGrid::check_grid (void) const | 100 FEGrid::check_grid (void) const |
101 { | 101 { |
102 int nel = elem.capacity () - 1; | 102 octave_idx_type nel = elem.capacity () - 1; |
103 if (nel < 1) | 103 if (nel < 1) |
104 { | 104 { |
105 nel_error (); | 105 nel_error (); |
106 return; | 106 return; |
107 } | 107 } |
108 | 108 |
109 for (int i = 1; i <= nel; i++) | 109 for (octave_idx_type i = 1; i <= nel; i++) |
110 { | 110 { |
111 if (elem.elem (i-1) > elem.elem (i)) | 111 if (elem.elem (i-1) > elem.elem (i)) |
112 { | 112 { |
113 error ("element boundaries not in ascending order"); | 113 error ("element boundaries not in ascending order"); |
114 return; | 114 return; |